KERNEL SELFTESTS: linux_headers_dir is /usr/src/linux-headers-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081 2019-06-05 16:01:13 ln -sf /usr/bin/clang-6.0 /usr/bin/clang 2019-06-05 16:01:13 ln -sf /usr/bin/llc-6.0 /usr/bin/llc 2019-06-05 16:01:13 make run_tests -C android make: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/android' make[1]: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/android/ion' gcc -I. -I../../../../../drivers/staging/android/uapi/ -I../../../../../usr/include/ -Wall -O2 -g ionapp_export.c ipcsocket.c ionutils.c -o ionapp_export gcc -I. -I../../../../../drivers/staging/android/uapi/ -I../../../../../usr/include/ -Wall -O2 -g ionapp_import.c ipcsocket.c ionutils.c -o ionapp_import gcc -I. -I../../../../../drivers/staging/android/uapi/ -I../../../../../usr/include/ -Wall -O2 -g ionmap_test.c ipcsocket.c ionutils.c -o ionmap_test make --no-builtin-rules INSTALL_HDR_PATH=$OUTPUT/usr \ ARCH=x86 -C ../../../../.. headers_install make[2]: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081' HOSTCC scripts/basic/fixdep WRAP arch/x86/include/generated/uapi/asm/bpf_perf_event.h WRAP arch/x86/include/generated/uapi/asm/poll.h WRAP arch/x86/include/generated/uapi/asm/socket.h WRAP arch/x86/include/generated/uapi/asm/sockios.h SYSTBL arch/x86/include/generated/asm/syscalls_32.h SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h HOSTCC arch/x86/tools/relocs_32.o HOSTCC arch/x86/tools/relocs_64.o HOSTCC arch/x86/tools/relocs_common.o HOSTLD arch/x86/tools/relocs UPD include/generated/uapi/linux/version.h HOSTCC scripts/unifdef INSTALL include/asm-generic (36 files) INSTALL include/drm (28 files) INSTALL include/linux/android (2 files) INSTALL include/linux/byteorder (2 files) INSTALL include/linux/caif (2 files) INSTALL include/linux/can (6 files) INSTALL include/linux/cifs (1 file) INSTALL include/linux/dvb (8 files) INSTALL include/linux/genwqe (1 file) INSTALL include/linux/hdlc (1 file) INSTALL include/linux/hsi (2 files) INSTALL include/linux/iio (2 files) INSTALL include/linux/isdn (1 file) INSTALL include/linux/mmc (1 file) INSTALL include/linux/netfilter/ipset (4 files) INSTALL include/linux/netfilter (88 files) INSTALL include/linux/netfilter_arp (2 files) INSTALL include/linux/netfilter_bridge (17 files) INSTALL include/linux/netfilter_ipv4 (9 files) INSTALL include/linux/netfilter_ipv6 (13 files) INSTALL include/linux/nfsd (5 files) INSTALL include/linux/raid (2 files) INSTALL include/linux/sched (1 file) INSTALL include/linux/spi (1 file) INSTALL include/linux/sunrpc (1 file) INSTALL include/linux/tc_act (16 files) INSTALL include/linux/tc_ematch (5 files) INSTALL include/linux/usb (13 files) INSTALL include/linux/wimax (1 file) INSTALL include/linux (508 files) INSTALL include/misc (4 files) INSTALL include/mtd (5 files) INSTALL include/rdma/hfi (2 files) INSTALL include/rdma (26 files) INSTALL include/scsi/fc (4 files) INSTALL include/scsi (5 files) INSTALL include/sound/sof (8 files) INSTALL include/sound (16 files) INSTALL include/video (3 files) INSTALL include/xen (4 files) INSTALL include/asm (62 files) make[2]: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081' make[1]: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/android/ion' TAP version 13 1..1 # selftests: android: run.sh # heap_type: 0, heap_size: 4096 # Fill buffer content: # 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd # Sharing fd: 8, Client fd: 7 # Received buffer fd: 6 # Read buffer content: # 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd # Fill buffer content: # 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd # ion_test.sh: heap_type: 0 - [PASS] # # ERROR: improper buf fd # Received buffer fd: 0 # ion_test.sh: heap_type: 1 - [FAIL] # heap_type: 1, heap_size: 4096 # Fill buffer content: # 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd 0xfd # ion_test.sh: done not ok 1 selftests: android: run.sh make: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/android' make: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/bpf' Auto-detecting system features: ... libbfd: [ on ] ... disassembler-four-args: [ OFF ] CC bpf_jit_disasm.o LINK bpf_jit_disasm CC bpf_dbg.o LINK bpf_dbg CC bpf_asm.o BISON bpf_exp.yacc.c CC bpf_exp.yacc.o FLEX bpf_exp.lex.c CC bpf_exp.lex.o LINK bpf_asm DESCEND bpftool make[1]: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/bpf/bpftool' Auto-detecting system features: ... libbfd: [ on ] ... disassembler-four-args: [ OFF ] CC map_perf_ring.o CC xlated_dumper.o CC btf.o CC tracelog.o CC perf.o CC prog.o CC btf_dumper.o CC net.o CC netlink_dumper.o CC common.o CC cgroup.o CC main.o CC json_writer.o CC cfg.o CC map.o CC feature.o CC jit_disasm.o CC disasm.o make[2]: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/lib/bpf' Auto-detecting system features: ... libelf: [ on ] ... bpf: [ on ] CC libbpf.o CC bpf.o CC nlattr.o CC btf.o CC libbpf_errno.o CC str_error.o CC netlink.o CC bpf_prog_linfo.o CC libbpf_probes.o CC xsk.o CC hashmap.o CC btf_dump.o LD libbpf-in.o LINK libbpf.a make[2]: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/lib/bpf' LINK bpftool make[1]: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/bpf/bpftool' make: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/bpf' make: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/bpf' Auto-detecting system features: ... libbfd: [ on ] ... disassembler-four-args: [ OFF ] DESCEND bpftool make[1]: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/bpf/bpftool' Auto-detecting system features: ... libbfd: [ on ] ... disassembler-four-args: [ OFF ] make[2]: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/lib/bpf' make[2]: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/lib/bpf' INSTALL bpftool make[1]: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/bpf/bpftool' INSTALL bpf_jit_disasm INSTALL bpf_dbg INSTALL bpf_asm make: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/bpf' ping6 is /bin/ping6 ignored_by_lkp bpf.test_lirc_mode2_user test 2019-06-05 16:01:56 make run_tests -C bpf make: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf' gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program -I. -I/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf -Iverifier -c -o test_stub.o test_stub.c make -C ../../../lib/bpf OUTPUT=/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/ make[1]: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/lib/bpf' Auto-detecting system features: ... libelf: [ on ] ... bpf: [ on ] HOSTCC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/fixdep.o HOSTLD /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/fixdep-in.o LINK /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/fixdep CC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.o CC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/bpf.o CC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/nlattr.o CC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/btf.o CC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf_errno.o CC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/str_error.o CC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/netlink.o CC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/bpf_prog_linfo.o CC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf_probes.o CC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/xsk.o CC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/hashmap.o CC /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/btf_dump.o LD /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf-in.o LINK /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a LINK /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.so.0.0.4 GEN /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.pc make[1]: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/lib/bpf' gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program -I. -I/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf -Iverifier test_verifier.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_verifier gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_tag.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_tag gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program -I. -I/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf test_maps.c map_tests/sk_storage_map.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_maps gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_lru_map.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_lru_map gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_lpm_map.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_lpm_map gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program -I. -I/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf test_progs.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a trace_helpers.c prog_tests/stacktrace_map.c prog_tests/xdp_noinline.c prog_tests/xdp_adjust_tail.c prog_tests/bpf_verif_scale.c prog_tests/signal_pending.c prog_tests/send_signal.c prog_tests/reference_tracking.c prog_tests/prog_run_xattr.c prog_tests/task_fd_query_tp.c prog_tests/tp_attach_query.c prog_tests/get_stack_raw_tp.c prog_tests/spinlock.c prog_tests/pkt_md_access.c prog_tests/stacktrace_build_id.c prog_tests/bpf_obj_id.c prog_tests/pkt_access.c prog_tests/stacktrace_map_raw_tp.c prog_tests/task_fd_query_rawtp.c prog_tests/xdp.c prog_tests/raw_tp_writable_test_run.c prog_tests/skb_ctx.c prog_tests/queue_stack_map.c prog_tests/raw_tp_writable_reject_nbd_invalid.c prog_tests/flow_dissector.c prog_tests/flow_dissector_load_bytes.c prog_tests/tcp_estats.c prog_tests/obj_name.c prog_tests/map_lock.c prog_tests/global_data.c prog_tests/l4lb_all.c prog_tests/stacktrace_build_id_nmi.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_progs prog_tests/flow_dissector.c: In function ‘tx_tap’: prog_tests/flow_dissector.c:175:9: warning: implicit declaration of function ‘writev’ [-Wimplicit-function-declaration] return writev(fd, iov, ARRAY_SIZE(iov)); ^~~~~~ gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_align.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_align gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_verifier_log.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_verifier_log gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_dev_cgroup.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_dev_cgroup gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_tcpbpf_user.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_tcpbpf_user gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_sock.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_sock gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_btf.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_btf gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_sockmap.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_sockmap gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program get_cgroup_id_user.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/get_cgroup_id_user gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_socket_cookie.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_socket_cookie gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_cgroup_storage.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_cgroup_storage gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_select_reuseport.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_select_reuseport gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_section_names.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_section_names gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_netcnt.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_netcnt gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_tcpnotify_user.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c trace_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_tcpnotify_user gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_sock_fields.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_sock_fields gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_sysctl.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_sysctl gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_hashmap.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_hashmap gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_btf_dump.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_btf_dump gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_cgroup_attach.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_cgroup_attach gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program xdping.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/xdping gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_libbpf_open.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_libbpf_open gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_sock_addr.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_sock_addr gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_skb_cgroup_id_user.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a cgroup_helpers.c -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_skb_cgroup_id_user gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program flow_dissector_load.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/flow_dissector_load gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_flow_dissector.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_flow_dissector gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program test_tcp_check_syncookie_user.c test_stub.o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/libbpf.a -lcap -lelf -lrt -lpthread -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_tcp_check_syncookie_user clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_lwt_seg6local.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_lwt_seg6local.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/get_cgroup_id_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/get_cgroup_id_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_tcp_estats.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_tcp_estats.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_sk_lookup_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_sk_lookup_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_tc_tunnel.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_tc_tunnel.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_adjust_tail.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_adjust_tail.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_sockhash_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_sockhash_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/pyperf180.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/pyperf180.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/btf_dump_test_case_ordering.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/btf_dump_test_case_ordering.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_btf_haskv.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_btf_haskv.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_map_lock.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_map_lock.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_global_data.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_global_data.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/sendmsg6_prog.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/sendmsg6_prog.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/sockmap_parse_prog.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/sockmap_parse_prog.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_lirc_mode2_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_lirc_mode2_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_xdp_redirect.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_xdp_redirect.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/btf_dump_test_case_bitfields.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/btf_dump_test_case_bitfields.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_sysctl_prog.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_sysctl_prog.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/sockmap_verdict_prog.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/sockmap_verdict_prog.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_stacktrace_map.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_stacktrace_map.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_tunnel_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_tunnel_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_xdp_meta.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_xdp_meta.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/btf_dump_test_case_padding.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/btf_dump_test_case_padding.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/connect4_prog.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/connect4_prog.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_btf_newkv.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_btf_newkv.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_verif_scale2.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_verif_scale2.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_sock_fields_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_sock_fields_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_send_signal_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_send_signal_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/sample_map_ret0.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/sample_map_ret0.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/btf_dump_test_case_namespacing.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/btf_dump_test_case_namespacing.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/pyperf50.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/pyperf50.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/btf_dump_test_case_multidim.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/btf_dump_test_case_multidim.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_skb_cgroup_id_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_skb_cgroup_id_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_tcpbpf_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_tcpbpf_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_tcp_check_syncookie_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_tcp_check_syncookie_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_pkt_access.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_pkt_access.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_get_stack_rawtp.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_get_stack_rawtp.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_obj_id.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_obj_id.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/socket_cookie_prog.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/socket_cookie_prog.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_tcpnotify_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_tcpnotify_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/btf_dump_test_case_packing.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/btf_dump_test_case_packing.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/xdp_dummy.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/xdp_dummy.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_xdp_vlan.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_xdp_vlan.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/sample_ret0.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/sample_ret0.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_queue_map.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_queue_map.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/btf_dump_test_case_syntax.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/btf_dump_test_case_syntax.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_map_in_map.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_map_in_map.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_verif_scale1.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_verif_scale1.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types -fno-inline \ -O2 -target bpf -emit-llvm -c progs/test_l4lb_noinline.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_l4lb_noinline.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_l4lb.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_l4lb.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_tracepoint.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_tracepoint.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/sendmsg4_prog.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/sendmsg4_prog.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types -fno-inline \ -O2 -target bpf -emit-llvm -c progs/test_xdp_noinline.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_xdp_noinline.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -emit-llvm -c progs/test_xdp.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_xdp.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_spin_lock.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_spin_lock.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/pyperf100.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/pyperf100.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/connect6_prog.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/connect6_prog.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_pkt_md_access.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_pkt_md_access.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_btf_nokv.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_btf_nokv.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_stacktrace_build_id.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_stacktrace_build_id.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_sockmap_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_sockmap_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/netcnt_prog.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/netcnt_prog.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_tc_edt.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_tc_edt.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/sockmap_tcp_msg_prog.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/sockmap_tcp_msg_prog.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_stack_map.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_stack_map.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_verif_scale3.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_verif_scale3.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/dev_cgroup.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/dev_cgroup.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_lwt_ip_encap.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_lwt_ip_encap.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/xdping_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/xdping_kern.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_skb_ctx.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_skb_ctx.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/bpf_flow.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/bpf_flow.o clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.1/include -idirafter /usr/include/x86_64-linux-gnu -idirafter /usr/include -Wno-compare-distinct-pointer-types \ -O2 -target bpf -emit-llvm -c progs/test_select_reuseport_kern.c -o - | \ llc -march=bpf -mcpu=probe -filetype=obj -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/test_select_reuseport_kern.o gcc -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/urandom_read urandom_read.c -Wl,--build-id TAP version 13 1..44 # selftests: bpf: test_verifier # #0/u invalid and of negative number OK # #0/p invalid and of negative number OK # #1/u invalid range check OK # #1/p invalid range check OK # #2/u valid map access into an array with a constant OK # #2/p valid map access into an array with a constant OK # #3/u valid map access into an array with a register OK # #3/p valid map access into an array with a register OK # #4/u valid map access into an array with a variable OK # #4/p valid map access into an array with a variable OK # #5/u valid map access into an array with a signed variable OK # #5/p valid map access into an array with a signed variable OK # #6/u invalid map access into an array with a constant OK # #6/p invalid map access into an array with a constant OK # #7/u invalid map access into an array with a register OK # #7/p invalid map access into an array with a register OK # #8/u invalid map access into an array with a variable OK # #8/p invalid map access into an array with a variable OK # #9/u invalid map access into an array with no floor check OK # #9/p invalid map access into an array with no floor check OK # #10/u invalid map access into an array with a invalid max check OK # #10/p invalid map access into an array with a invalid max check OK # #11/u invalid map access into an array with a invalid max check OK # #11/p invalid map access into an array with a invalid max check OK # #12/u valid read map access into a read-only array 1 OK # #12/p valid read map access into a read-only array 1 OK # #13/p valid read map access into a read-only array 2 OK # #14/u invalid write map access into a read-only array 1 OK # #14/p invalid write map access into a read-only array 1 OK # #15/p invalid write map access into a read-only array 2 OK # #16/u valid write map access into a write-only array 1 OK # #16/p valid write map access into a write-only array 1 OK # #17/p valid write map access into a write-only array 2 OK # #18/u invalid read map access into a write-only array 1 OK # #18/p invalid read map access into a write-only array 1 OK # #19/p invalid read map access into a write-only array 2 OK # #20/u empty prog OK # #20/p empty prog OK # #21/u only exit insn OK # #21/p only exit insn OK # #22/u no bpf_exit OK # #22/p no bpf_exit OK # #23/u invalid call insn1 OK # #23/p invalid call insn1 OK # #24/u invalid call insn2 OK # #24/p invalid call insn2 OK # #25/u invalid function call OK # #25/p invalid function call OK # #26/p invalid argument register OK # #27/p non-invalid argument register OK # #28/u add+sub+mul OK # #28/p add+sub+mul OK # #29/p xor32 zero extend check OK # #30/u arsh32 on imm OK # #30/p arsh32 on imm OK # #31/u arsh32 on imm 2 OK # #31/p arsh32 on imm 2 OK # #32/u arsh32 on reg OK # #32/p arsh32 on reg OK # #33/u arsh32 on reg 2 OK # #33/p arsh32 on reg 2 OK # #34/u arsh64 on imm OK # #34/p arsh64 on imm OK # #35/u arsh64 on reg OK # #35/p arsh64 on reg OK # #36/u invalid 64-bit BPF_END OK # #36/p invalid 64-bit BPF_END OK # #37/p mov64 src == dst OK # #38/p mov64 src != dst OK # #39/u stack out of bounds OK # #39/p stack out of bounds OK # #40/u uninitialized stack1 OK # #40/p uninitialized stack1 OK # #41/u uninitialized stack2 OK # #41/p uninitialized stack2 OK # #42/u invalid fp arithmetic OK # #42/p invalid fp arithmetic OK # #43/u non-invalid fp arithmetic OK # #43/p non-invalid fp arithmetic OK # #44/u misaligned read from stack OK # #44/p misaligned read from stack OK # #45/u invalid src register in STX OK # #45/p invalid src register in STX OK # #46/u invalid dst register in STX OK # #46/p invalid dst register in STX OK # #47/u invalid dst register in ST OK # #47/p invalid dst register in ST OK # #48/u invalid src register in LDX OK # #48/p invalid src register in LDX OK # #49/u invalid dst register in LDX OK # #49/p invalid dst register in LDX OK # #50/u subtraction bounds (map value) variant 1 OK # #50/p subtraction bounds (map value) variant 1 OK # #51/u subtraction bounds (map value) variant 2 OK # #51/p subtraction bounds (map value) variant 2 OK # #52/u check subtraction on pointers for unpriv OK # #52/p check subtraction on pointers for unpriv OK # #53/u bounds check based on zero-extended MOV OK # #53/p bounds check based on zero-extended MOV OK # #54/u bounds check based on sign-extended MOV. test1 OK # #54/p bounds check based on sign-extended MOV. test1 OK # #55/u bounds check based on sign-extended MOV. test2 OK # #55/p bounds check based on sign-extended MOV. test2 OK # #56/p bounds check based on reg_off + var_off + insn_off. test1 OK # #57/p bounds check based on reg_off + var_off + insn_off. test2 OK # #58/u bounds check after truncation of non-boundary-crossing range OK # #58/p bounds check after truncation of non-boundary-crossing range OK # #59/u bounds check after truncation of boundary-crossing range (1) OK # #59/p bounds check after truncation of boundary-crossing range (1) OK # #60/u bounds check after truncation of boundary-crossing range (2) OK # #60/p bounds check after truncation of boundary-crossing range (2) OK # #61/u bounds check after wrapping 32-bit addition OK # #61/p bounds check after wrapping 32-bit addition OK # #62/u bounds check after shift with oversized count operand OK # #62/p bounds check after shift with oversized count operand OK # #63/u bounds check after right shift of maybe-negative number OK # #63/p bounds check after right shift of maybe-negative number OK # #64/u bounds check after 32-bit right shift with 64-bit input OK # #64/p bounds check after 32-bit right shift with 64-bit input OK # #65/u bounds check map access with off+size signed 32bit overflow. test1 OK # #65/p bounds check map access with off+size signed 32bit overflow. test1 OK # #66/u bounds check map access with off+size signed 32bit overflow. test2 OK # #66/p bounds check map access with off+size signed 32bit overflow. test2 OK # #67/u bounds check map access with off+size signed 32bit overflow. test3 OK # #67/p bounds check map access with off+size signed 32bit overflow. test3 OK # #68/u bounds check map access with off+size signed 32bit overflow. test4 OK # #68/p bounds check map access with off+size signed 32bit overflow. test4 OK # #69/u check deducing bounds from const, 1 OK # #69/p check deducing bounds from const, 1 OK # #70/u check deducing bounds from const, 2 OK # #70/p check deducing bounds from const, 2 OK # #71/u check deducing bounds from const, 3 OK # #71/p check deducing bounds from const, 3 OK # #72/u check deducing bounds from const, 4 OK # #72/p check deducing bounds from const, 4 OK # #73/u check deducing bounds from const, 5 OK # #73/p check deducing bounds from const, 5 OK # #74/u check deducing bounds from const, 6 OK # #74/p check deducing bounds from const, 6 OK # #75/u check deducing bounds from const, 7 OK # #75/p check deducing bounds from const, 7 OK # #76/u check deducing bounds from const, 8 OK # #76/p check deducing bounds from const, 8 OK # #77/u check deducing bounds from const, 9 OK # #77/p check deducing bounds from const, 9 OK # #78/u check deducing bounds from const, 10 OK # #78/p check deducing bounds from const, 10 OK # #79/u bounds checks mixing signed and unsigned, positive bounds OK # #79/p bounds checks mixing signed and unsigned, positive bounds OK # #80/u bounds checks mixing signed and unsigned OK # #80/p bounds checks mixing signed and unsigned OK # #81/u bounds checks mixing signed and unsigned, variant 2 OK # #81/p bounds checks mixing signed and unsigned, variant 2 OK # #82/u bounds checks mixing signed and unsigned, variant 3 OK # #82/p bounds checks mixing signed and unsigned, variant 3 OK # #83/u bounds checks mixing signed and unsigned, variant 4 OK # #83/p bounds checks mixing signed and unsigned, variant 4 OK # #84/u bounds checks mixing signed and unsigned, variant 5 OK # #84/p bounds checks mixing signed and unsigned, variant 5 OK # #85/u bounds checks mixing signed and unsigned, variant 6 OK # #85/p bounds checks mixing signed and unsigned, variant 6 OK # #86/u bounds checks mixing signed and unsigned, variant 7 OK # #86/p bounds checks mixing signed and unsigned, variant 7 OK # #87/u bounds checks mixing signed and unsigned, variant 8 OK # #87/p bounds checks mixing signed and unsigned, variant 8 OK # #88/u bounds checks mixing signed and unsigned, variant 9 OK # #88/p bounds checks mixing signed and unsigned, variant 9 OK # #89/u bounds checks mixing signed and unsigned, variant 10 OK # #89/p bounds checks mixing signed and unsigned, variant 10 OK # #90/u bounds checks mixing signed and unsigned, variant 11 OK # #90/p bounds checks mixing signed and unsigned, variant 11 OK # #91/u bounds checks mixing signed and unsigned, variant 12 OK # #91/p bounds checks mixing signed and unsigned, variant 12 OK # #92/u bounds checks mixing signed and unsigned, variant 13 OK # #92/p bounds checks mixing signed and unsigned, variant 13 OK # #93/u bounds checks mixing signed and unsigned, variant 14 OK # #93/p bounds checks mixing signed and unsigned, variant 14 OK # #94/u bounds checks mixing signed and unsigned, variant 15 OK # #94/p bounds checks mixing signed and unsigned, variant 15 OK # #95/p bpf_get_stack return R0 within range OK # #96/p calls: basic sanity OK # #97/u calls: not on unpriviledged OK # #97/p calls: not on unpriviledged OK # #98/p calls: div by 0 in subprog OK # #99/p calls: multiple ret types in subprog 1 OK # #100/p calls: multiple ret types in subprog 2 OK # #101/p calls: overlapping caller/callee OK # #102/p calls: wrong recursive calls OK # #103/p calls: wrong src reg OK # #104/p calls: wrong off value OK # #105/p calls: jump back loop OK # #106/p calls: conditional call OK # #107/p calls: conditional call 2 OK # #108/p calls: conditional call 3 OK # #109/p calls: conditional call 4 OK # #110/p calls: conditional call 5 OK # #111/p calls: conditional call 6 OK # #112/p calls: using r0 returned by callee OK # #113/p calls: using uninit r0 from callee OK # #114/p calls: callee is using r1 OK # #115/u calls: callee using args1 OK # #115/p calls: callee using args1 OK # #116/p calls: callee using wrong args2 OK # #117/u calls: callee using two args OK # #117/p calls: callee using two args OK # #118/p calls: callee changing pkt pointers OK # #119/u calls: ptr null check in subprog OK # #119/p calls: ptr null check in subprog OK # #120/p calls: two calls with args OK # #121/p calls: calls with stack arith OK # #122/p calls: calls with misaligned stack access OK # #123/p calls: calls control flow, jump test OK # #124/p calls: calls control flow, jump test 2 OK # #125/p calls: two calls with bad jump OK # #126/p calls: recursive call. test1 OK # #127/p calls: recursive call. test2 OK # #128/p calls: unreachable code OK # #129/p calls: invalid call OK # #130/p calls: invalid call 2 OK # #131/p calls: jumping across function bodies. test1 OK # #132/p calls: jumping across function bodies. test2 OK # #133/p calls: call without exit OK # #134/p calls: call into middle of ld_imm64 OK # #135/p calls: call into middle of other call OK # #136/p calls: ld_abs with changing ctx data in callee OK # #137/p calls: two calls with bad fallthrough OK # #138/p calls: two calls with stack read OK # #139/p calls: two calls with stack write OK # #140/p calls: stack overflow using two frames (pre-call access) OK # #141/p calls: stack overflow using two frames (post-call access) OK # #142/p calls: stack depth check using three frames. test1 OK # #143/p calls: stack depth check using three frames. test2 OK # #144/p calls: stack depth check using three frames. test3 OK # #145/p calls: stack depth check using three frames. test4 OK # #146/p calls: stack depth check using three frames. test5 OK # #147/p calls: stack depth check in dead code OK # #148/p calls: spill into caller stack frame OK # #149/p calls: write into caller stack frame OK # #150/p calls: write into callee stack frame OK # #151/p calls: two calls with stack write and void return OK # #152/u calls: ambiguous return value OK # #152/p calls: ambiguous return value OK # #153/p calls: two calls that return map_value OK # #154/p calls: two calls that return map_value with bool condition OK # #155/p calls: two calls that return map_value with incorrect bool check OK # #156/p calls: two calls that receive map_value via arg=ptr_stack_of_caller. test1 OK # #157/p calls: two calls that receive map_value via arg=ptr_stack_of_caller. test2 OK # #158/p calls: two jumps that receive map_value via arg=ptr_stack_of_jumper. test3 OK # #159/p calls: two calls that receive map_value_ptr_or_null via arg. test1 OK # #160/p calls: two calls that receive map_value_ptr_or_null via arg. test2 OK # #161/p calls: pkt_ptr spill into caller stack OK # #162/p calls: pkt_ptr spill into caller stack 2 OK # #163/p calls: pkt_ptr spill into caller stack 3 OK # #164/p calls: pkt_ptr spill into caller stack 4 OK # #165/p calls: pkt_ptr spill into caller stack 5 OK # #166/p calls: pkt_ptr spill into caller stack 6 OK # #167/p calls: pkt_ptr spill into caller stack 7 OK # #168/p calls: pkt_ptr spill into caller stack 8 OK # #169/p calls: pkt_ptr spill into caller stack 9 OK # #170/p calls: caller stack init to zero or map_value_or_null OK # #171/p calls: stack init to zero and pruning OK # #172/u calls: ctx read at start of subprog OK # #172/p calls: ctx read at start of subprog OK # #173/u calls: cross frame pruning OK # #173/p calls: cross frame pruning OK # #174/u calls: cross frame pruning - liveness propagation OK # #174/p calls: cross frame pruning - liveness propagation OK # #175/u unreachable OK # #175/p unreachable OK # #176/u unreachable2 OK # #176/p unreachable2 OK # #177/u out of range jump OK # #177/p out of range jump OK # #178/u out of range jump2 OK # #178/p out of range jump2 OK # #179/u loop (back-edge) OK # #179/p loop (back-edge) OK # #180/u loop2 (back-edge) OK # #180/p loop2 (back-edge) OK # #181/u conditional loop OK # #181/p conditional loop OK # #182/p bpf_exit with invalid return code. test1 OK # #183/p bpf_exit with invalid return code. test2 OK # #184/p bpf_exit with invalid return code. test3 OK # #185/p bpf_exit with invalid return code. test4 OK # #186/p bpf_exit with invalid return code. test5 OK # #187/p bpf_exit with invalid return code. test6 OK # #188/p bpf_exit with invalid return code. test7 OK # #189/u direct packet read test#1 for CGROUP_SKB OK # #189/p direct packet read test#1 for CGROUP_SKB OK # #190/u direct packet read test#2 for CGROUP_SKB OK # #190/p direct packet read test#2 for CGROUP_SKB OK # #191/u direct packet read test#3 for CGROUP_SKB OK # #191/p direct packet read test#3 for CGROUP_SKB OK # #192/u direct packet read test#4 for CGROUP_SKB OK # #192/p direct packet read test#4 for CGROUP_SKB OK # #193/u invalid access of tc_classid for CGROUP_SKB OK # #193/p invalid access of tc_classid for CGROUP_SKB OK # #194/u invalid access of data_meta for CGROUP_SKB OK # #194/p invalid access of data_meta for CGROUP_SKB OK # #195/u invalid access of flow_keys for CGROUP_SKB OK # #195/p invalid access of flow_keys for CGROUP_SKB OK # #196/u invalid write access to napi_id for CGROUP_SKB OK # #196/p invalid write access to napi_id for CGROUP_SKB OK # #197/u write tstamp from CGROUP_SKB OK # #197/p write tstamp from CGROUP_SKB OK # #198/u read tstamp from CGROUP_SKB OK # #198/p read tstamp from CGROUP_SKB OK # #199/u valid cgroup storage access OK # #199/p valid cgroup storage access OK # #200/u invalid cgroup storage access 1 OK # #200/p invalid cgroup storage access 1 OK # #201/u invalid cgroup storage access 2 OK # #201/p invalid cgroup storage access 2 OK # #202/u invalid cgroup storage access 3 OK # #202/p invalid cgroup storage access 3 OK # #203/u invalid cgroup storage access 4 OK # #203/p invalid cgroup storage access 4 OK # #204/u invalid cgroup storage access 5 OK # #204/p invalid cgroup storage access 5 OK # #205/u invalid cgroup storage access 6 OK # #205/p invalid cgroup storage access 6 OK # #206/u valid per-cpu cgroup storage access OK # #206/p valid per-cpu cgroup storage access OK # #207/u invalid per-cpu cgroup storage access 1 OK # #207/p invalid per-cpu cgroup storage access 1 OK # #208/u invalid per-cpu cgroup storage access 2 OK # #208/p invalid per-cpu cgroup storage access 2 OK # #209/u invalid per-cpu cgroup storage access 3 OK # #209/p invalid per-cpu cgroup storage access 3 OK # #210/u invalid per-cpu cgroup storage access 4 OK # #210/p invalid per-cpu cgroup storage access 4 OK # #211/u invalid per-cpu cgroup storage access 5 OK # #211/p invalid per-cpu cgroup storage access 5 OK # #212/u invalid per-cpu cgroup storage access 6 OK # #212/p invalid per-cpu cgroup storage access 6 OK # #213/p constant register |= constant should keep constant type OK # #214/p constant register |= constant should not bypass stack boundary checks OK # #215/p constant register |= constant register should keep constant type OK # #216/p constant register |= constant register should not bypass stack boundary checks OK # #217/p context stores via ST OK # #218/p context stores via XADD OK # #219/p arithmetic ops make PTR_TO_CTX unusable OK # #220/p pass unmodified ctx pointer to helper OK # #221/p pass modified ctx pointer to helper, 1 OK # #222/u pass modified ctx pointer to helper, 2 OK # #222/p pass modified ctx pointer to helper, 2 OK # #223/p pass modified ctx pointer to helper, 3 OK # #224/p valid access family in SK_MSG OK # #225/p valid access remote_ip4 in SK_MSG OK # #226/p valid access local_ip4 in SK_MSG OK # #227/p valid access remote_port in SK_MSG OK # #228/p valid access local_port in SK_MSG OK # #229/p valid access remote_ip6 in SK_MSG OK # #230/p valid access local_ip6 in SK_MSG OK # #231/p valid access size in SK_MSG OK # #232/p invalid 64B read of size in SK_MSG OK # #233/p invalid read past end of SK_MSG OK # #234/p invalid read offset in SK_MSG OK # #235/p direct packet read for SK_MSG OK # #236/p direct packet write for SK_MSG OK # #237/p overlapping checks for direct packet access SK_MSG OK # #238/u access skb fields ok OK # #238/p access skb fields ok OK # #239/u access skb fields bad1 OK # #239/p access skb fields bad1 OK # #240/u access skb fields bad2 OK # #240/p access skb fields bad2 OK # #241/u access skb fields bad3 OK # #241/p access skb fields bad3 OK # #242/u access skb fields bad4 OK # #242/p access skb fields bad4 OK # #243/u invalid access __sk_buff family OK # #243/p invalid access __sk_buff family OK # #244/u invalid access __sk_buff remote_ip4 OK # #244/p invalid access __sk_buff remote_ip4 OK # #245/u invalid access __sk_buff local_ip4 OK # #245/p invalid access __sk_buff local_ip4 OK # #246/u invalid access __sk_buff remote_ip6 OK # #246/p invalid access __sk_buff remote_ip6 OK # #247/u invalid access __sk_buff local_ip6 OK # #247/p invalid access __sk_buff local_ip6 OK # #248/u invalid access __sk_buff remote_port OK # #248/p invalid access __sk_buff remote_port OK # #249/u invalid access __sk_buff remote_port OK # #249/p invalid access __sk_buff remote_port OK # #250/p valid access __sk_buff family OK # #251/p valid access __sk_buff remote_ip4 OK # #252/p valid access __sk_buff local_ip4 OK # #253/p valid access __sk_buff remote_ip6 OK # #254/p valid access __sk_buff local_ip6 OK # #255/p valid access __sk_buff remote_port OK # #256/p valid access __sk_buff remote_port OK # #257/p invalid access of tc_classid for SK_SKB OK # #258/p invalid access of skb->mark for SK_SKB OK # #259/p check skb->mark is not writeable by SK_SKB OK # #260/p check skb->tc_index is writeable by SK_SKB OK # #261/p check skb->priority is writeable by SK_SKB OK # #262/p direct packet read for SK_SKB OK # #263/p direct packet write for SK_SKB OK # #264/p overlapping checks for direct packet access SK_SKB OK # #265/u check skb->mark is not writeable by sockets OK # #265/p check skb->mark is not writeable by sockets OK # #266/u check skb->tc_index is not writeable by sockets OK # #266/p check skb->tc_index is not writeable by sockets OK # #267/u check cb access: byte OK # #267/p check cb access: byte OK # #268/u __sk_buff->hash, offset 0, byte store not permitted OK # #268/p __sk_buff->hash, offset 0, byte store not permitted OK # #269/u __sk_buff->tc_index, offset 3, byte store not permitted OK # #269/p __sk_buff->tc_index, offset 3, byte store not permitted OK # #270/u check skb->hash byte load permitted OK # #270/p check skb->hash byte load permitted OK # #271/u check skb->hash byte load permitted 1 OK # #271/p check skb->hash byte load permitted 1 OK # #272/u check skb->hash byte load permitted 2 OK # #272/p check skb->hash byte load permitted 2 OK # #273/u check skb->hash byte load permitted 3 OK # #273/p check skb->hash byte load permitted 3 OK # #274/p check cb access: byte, wrong type OK # #275/u check cb access: half OK # #275/p check cb access: half OK # #276/u check cb access: half, unaligned OK # #276/p check cb access: half, unaligned OK # #277/u check __sk_buff->hash, offset 0, half store not permitted OK # #277/p check __sk_buff->hash, offset 0, half store not permitted OK # #278/u check __sk_buff->tc_index, offset 2, half store not permitted OK # #278/p check __sk_buff->tc_index, offset 2, half store not permitted OK # #279/u check skb->hash half load permitted OK # #279/p check skb->hash half load permitted OK # #280/u check skb->hash half load permitted 2 OK # #280/p check skb->hash half load permitted 2 OK # #281/u check skb->hash half load not permitted, unaligned 1 OK # #281/p check skb->hash half load not permitted, unaligned 1 OK # #282/u check skb->hash half load not permitted, unaligned 3 OK # #282/p check skb->hash half load not permitted, unaligned 3 OK # #283/p check cb access: half, wrong type OK # #284/u check cb access: word OK # #284/p check cb access: word OK # #285/u check cb access: word, unaligned 1 OK # #285/p check cb access: word, unaligned 1 OK # #286/u check cb access: word, unaligned 2 OK # #286/p check cb access: word, unaligned 2 OK # #287/u check cb access: word, unaligned 3 OK # #287/p check cb access: word, unaligned 3 OK # #288/u check cb access: word, unaligned 4 OK # #288/p check cb access: word, unaligned 4 OK # #289/u check cb access: double OK # #289/p check cb access: double OK # #290/u check cb access: double, unaligned 1 OK # #290/p check cb access: double, unaligned 1 OK # #291/u check cb access: double, unaligned 2 OK # #291/p check cb access: double, unaligned 2 OK # #292/u check cb access: double, oob 1 OK # #292/p check cb access: double, oob 1 OK # #293/u check cb access: double, oob 2 OK # #293/p check cb access: double, oob 2 OK # #294/u check __sk_buff->ifindex dw store not permitted OK # #294/p check __sk_buff->ifindex dw store not permitted OK # #295/u check __sk_buff->ifindex dw load not permitted OK # #295/p check __sk_buff->ifindex dw load not permitted OK # #296/p check cb access: double, wrong type OK # #297/p check out of range skb->cb access OK # #298/u write skb fields from socket prog OK # #298/p write skb fields from socket prog OK # #299/p write skb fields from tc_cls_act prog OK # #300/u check skb->data half load not permitted OK # #300/p check skb->data half load not permitted OK # #301/u read gso_segs from CGROUP_SKB OK # #301/p read gso_segs from CGROUP_SKB OK # #302/u write gso_segs from CGROUP_SKB OK # #302/p write gso_segs from CGROUP_SKB OK # #303/p read gso_segs from CLS OK # #304/u check wire_len is not readable by sockets OK # #304/p check wire_len is not readable by sockets OK # #305/p check wire_len is readable by tc classifier OK # #306/p check wire_len is not writable by tc classifier OK # #307/u dead code: start OK # #307/p dead code: start OK # #308/u dead code: mid 1 OK # #308/p dead code: mid 1 OK # #309/u dead code: mid 2 OK # #309/p dead code: mid 2 OK # #310/u dead code: end 1 OK # #310/p dead code: end 1 OK # #311/u dead code: end 2 OK # #311/p dead code: end 2 OK # #312/u dead code: end 3 OK # #312/p dead code: end 3 OK # #313/u dead code: tail of main + func OK # #313/p dead code: tail of main + func OK # #314/u dead code: tail of main + two functions OK # #314/p dead code: tail of main + two functions OK # #315/u dead code: function in the middle and mid of another func OK # #315/p dead code: function in the middle and mid of another func OK # #316/u dead code: middle of main before call OK # #316/p dead code: middle of main before call OK # #317/u dead code: start of a function OK # #317/p dead code: start of a function OK # #318/p pkt_end - pkt_start is allowed OK # #319/p direct packet access: test1 OK # #320/p direct packet access: test2 OK # #321/u direct packet access: test3 OK # #321/p direct packet access: test3 OK # #322/p direct packet access: test4 (write) OK # #323/p direct packet access: test5 (pkt_end >= reg, good access) OK # #324/p direct packet access: test6 (pkt_end >= reg, bad access) OK # #325/p direct packet access: test7 (pkt_end >= reg, both accesses) OK # #326/p direct packet access: test8 (double test, variant 1) OK # #327/p direct packet access: test9 (double test, variant 2) OK # #328/p direct packet access: test10 (write invalid) OK # #329/p direct packet access: test11 (shift, good access) OK # #330/p direct packet access: test12 (and, good access) OK # #331/p direct packet access: test13 (branches, good access) OK # #332/p direct packet access: test14 (pkt_ptr += 0, CONST_IMM, good access) OK # #333/p direct packet access: test15 (spill with xadd) OK # #334/p direct packet access: test16 (arith on data_end) OK # #335/p direct packet access: test17 (pruning, alignment) OK # #336/p direct packet access: test18 (imm += pkt_ptr, 1) OK # #337/p direct packet access: test19 (imm += pkt_ptr, 2) OK # #338/p direct packet access: test20 (x += pkt_ptr, 1) OK # #339/p direct packet access: test21 (x += pkt_ptr, 2) OK # #340/p direct packet access: test22 (x += pkt_ptr, 3) OK # #341/p direct packet access: test23 (x += pkt_ptr, 4) OK # #342/p direct packet access: test24 (x += pkt_ptr, 5) OK # #343/p direct packet access: test25 (marking on <, good access) OK # #344/p direct packet access: test26 (marking on <, bad access) OK # #345/p direct packet access: test27 (marking on <=, good access) OK # #346/p direct packet access: test28 (marking on <=, bad access) OK # #347/p direct packet access: test29 (reg > pkt_end in subprog) OK # #348/u direct stack access with 32-bit wraparound. test1 OK # #348/p direct stack access with 32-bit wraparound. test1 OK # #349/u direct stack access with 32-bit wraparound. test2 OK # #349/p direct stack access with 32-bit wraparound. test2 OK # #350/u direct stack access with 32-bit wraparound. test3 OK # #350/p direct stack access with 32-bit wraparound. test3 OK # #351/u direct map access, write test 1 OK # #351/p direct map access, write test 1 OK # #352/u direct map access, write test 2 OK # #352/p direct map access, write test 2 OK # #353/u direct map access, write test 3 OK # #353/p direct map access, write test 3 OK # #354/u direct map access, write test 4 OK # #354/p direct map access, write test 4 OK # #355/u direct map access, write test 5 OK # #355/p direct map access, write test 5 OK # #356/u direct map access, write test 6 OK # #356/p direct map access, write test 6 OK # #357/u direct map access, write test 7 OK # #357/p direct map access, write test 7 OK # #358/u direct map access, write test 8 OK # #358/p direct map access, write test 8 OK # #359/u direct map access, write test 9 OK # #359/p direct map access, write test 9 OK # #360/u direct map access, write test 10 OK # #360/p direct map access, write test 10 OK # #361/u direct map access, write test 11 OK # #361/p direct map access, write test 11 OK # #362/u direct map access, write test 12 OK # #362/p direct map access, write test 12 OK # #363/u direct map access, write test 13 OK # #363/p direct map access, write test 13 OK # #364/u direct map access, write test 14 OK # #364/p direct map access, write test 14 OK # #365/u direct map access, write test 15 OK # #365/p direct map access, write test 15 OK # #366/u direct map access, write test 16 OK # #366/p direct map access, write test 16 OK # #367/u direct map access, write test 17 OK # #367/p direct map access, write test 17 OK # #368/u direct map access, write test 18 OK # #368/p direct map access, write test 18 OK # #369/u direct map access, write test 19 OK # #369/p direct map access, write test 19 OK # #370/u direct map access, write test 20 OK # #370/p direct map access, write test 20 OK # #371/u direct map access, invalid insn test 1 OK # #371/p direct map access, invalid insn test 1 OK # #372/u direct map access, invalid insn test 2 OK # #372/p direct map access, invalid insn test 2 OK # #373/u direct map access, invalid insn test 3 OK # #373/p direct map access, invalid insn test 3 OK # #374/u direct map access, invalid insn test 4 OK # #374/p direct map access, invalid insn test 4 OK # #375/u direct map access, invalid insn test 5 OK # #375/p direct map access, invalid insn test 5 OK # #376/u direct map access, invalid insn test 6 OK # #376/p direct map access, invalid insn test 6 OK # #377/u direct map access, invalid insn test 7 OK # #377/p direct map access, invalid insn test 7 OK # #378/u direct map access, invalid insn test 8 OK # #378/p direct map access, invalid insn test 8 OK # #379/u direct map access, invalid insn test 9 OK # #379/p direct map access, invalid insn test 9 OK # #380/u DIV32 by 0, zero check 1 OK # #380/p DIV32 by 0, zero check 1 OK # #381/u DIV32 by 0, zero check 2 OK # #381/p DIV32 by 0, zero check 2 OK # #382/u DIV64 by 0, zero check OK # #382/p DIV64 by 0, zero check OK # #383/u MOD32 by 0, zero check 1 OK # #383/p MOD32 by 0, zero check 1 OK # #384/u MOD32 by 0, zero check 2 OK # #384/p MOD32 by 0, zero check 2 OK # #385/u MOD64 by 0, zero check OK # #385/p MOD64 by 0, zero check OK # #386/p DIV32 by 0, zero check ok, cls OK # #387/p DIV32 by 0, zero check 1, cls OK # #388/p DIV32 by 0, zero check 2, cls OK # #389/p DIV64 by 0, zero check, cls OK # #390/p MOD32 by 0, zero check ok, cls OK # #391/p MOD32 by 0, zero check 1, cls OK # #392/p MOD32 by 0, zero check 2, cls OK # #393/p MOD64 by 0, zero check 1, cls OK # #394/p MOD64 by 0, zero check 2, cls OK # #395/p DIV32 overflow, check 1 OK # #396/p DIV32 overflow, check 2 OK # #397/p DIV64 overflow, check 1 OK # #398/p DIV64 overflow, check 2 OK # #399/p MOD32 overflow, check 1 OK # #400/p MOD32 overflow, check 2 OK # #401/p MOD64 overflow, check 1 OK # #402/p MOD64 overflow, check 2 OK # #403/p helper access to variable memory: stack, bitwise AND + JMP, correct bounds OK # #404/p helper access to variable memory: stack, bitwise AND, zero included OK # #405/p helper access to variable memory: stack, bitwise AND + JMP, wrong max OK # #406/p helper access to variable memory: stack, JMP, correct bounds OK # #407/p helper access to variable memory: stack, JMP (signed), correct bounds OK # #408/p helper access to variable memory: stack, JMP, bounds + offset OK # #409/p helper access to variable memory: stack, JMP, wrong max OK # #410/p helper access to variable memory: stack, JMP, no max check OK # #411/p helper access to variable memory: stack, JMP, no min check OK # #412/p helper access to variable memory: stack, JMP (signed), no min check OK # #413/p helper access to variable memory: map, JMP, correct bounds OK # #414/p helper access to variable memory: map, JMP, wrong max OK # #415/p helper access to variable memory: map adjusted, JMP, correct bounds OK # #416/p helper access to variable memory: map adjusted, JMP, wrong max OK # #417/p helper access to variable memory: size = 0 allowed on NULL (ARG_PTR_TO_MEM_OR_NULL) OK # #418/p helper access to variable memory: size > 0 not allowed on NULL (ARG_PTR_TO_MEM_OR_NULL) OK # #419/p helper access to variable memory: size = 0 allowed on != NULL stack pointer (ARG_PTR_TO_MEM_OR_NULL) OK # #420/p helper access to variable memory: size = 0 allowed on != NULL map pointer (ARG_PTR_TO_MEM_OR_NULL) OK # #421/p helper access to variable memory: size possible = 0 allowed on != NULL stack pointer (ARG_PTR_TO_MEM_OR_NULL) OK # #422/p helper access to variable memory: size possible = 0 allowed on != NULL map pointer (ARG_PTR_TO_MEM_OR_NULL) OK # #423/p helper access to variable memory: size possible = 0 allowed on != NULL packet pointer (ARG_PTR_TO_MEM_OR_NULL) OK # #424/p helper access to variable memory: size = 0 not allowed on NULL (!ARG_PTR_TO_MEM_OR_NULL) OK # #425/p helper access to variable memory: size > 0 not allowed on NULL (!ARG_PTR_TO_MEM_OR_NULL) OK # #426/p helper access to variable memory: size = 0 allowed on != NULL stack pointer (!ARG_PTR_TO_MEM_OR_NULL) OK # #427/p helper access to variable memory: size = 0 allowed on != NULL map pointer (!ARG_PTR_TO_MEM_OR_NULL) OK # #428/p helper access to variable memory: size possible = 0 allowed on != NULL stack pointer (!ARG_PTR_TO_MEM_OR_NULL) OK # #429/p helper access to variable memory: size possible = 0 allowed on != NULL map pointer (!ARG_PTR_TO_MEM_OR_NULL) OK # #430/p helper access to variable memory: 8 bytes leak OK # #431/p helper access to variable memory: 8 bytes no leak (init memory) OK # #432/p helper access to packet: test1, valid packet_ptr range OK # #433/p helper access to packet: test2, unchecked packet_ptr OK # #434/p helper access to packet: test3, variable add OK # #435/p helper access to packet: test4, packet_ptr with bad range OK # #436/p helper access to packet: test5, packet_ptr with too short range OK # #437/p helper access to packet: test6, cls valid packet_ptr range OK # #438/p helper access to packet: test7, cls unchecked packet_ptr OK # #439/p helper access to packet: test8, cls variable add OK # #440/p helper access to packet: test9, cls packet_ptr with bad range OK # #441/p helper access to packet: test10, cls packet_ptr with too short range OK # #442/p helper access to packet: test11, cls unsuitable helper 1 OK # #443/p helper access to packet: test12, cls unsuitable helper 2 OK # #444/p helper access to packet: test13, cls helper ok OK # #445/p helper access to packet: test14, cls helper ok sub OK # #446/p helper access to packet: test15, cls helper fail sub OK # #447/p helper access to packet: test16, cls helper fail range 1 OK # #448/p helper access to packet: test17, cls helper fail range 2 OK # #449/p helper access to packet: test18, cls helper fail range 3 OK # #450/p helper access to packet: test19, cls helper range zero OK # #451/p helper access to packet: test20, pkt end as input OK # #452/p helper access to packet: test21, wrong reg OK # #453/p helper access to map: full range OK # #454/p helper access to map: partial range OK # #455/p helper access to map: empty range OK # #456/p helper access to map: out-of-bound range OK # #457/p helper access to map: negative range OK # #458/p helper access to adjusted map (via const imm): full range OK # #459/p helper access to adjusted map (via const imm): partial range OK # #460/p helper access to adjusted map (via const imm): empty range OK # #461/p helper access to adjusted map (via const imm): out-of-bound range OK # #462/p helper access to adjusted map (via const imm): negative range (> adjustment) OK # #463/p helper access to adjusted map (via const imm): negative range (< adjustment) OK # #464/p helper access to adjusted map (via const reg): full range OK # #465/p helper access to adjusted map (via const reg): partial range OK # #466/p helper access to adjusted map (via const reg): empty range OK # #467/p helper access to adjusted map (via const reg): out-of-bound range OK # #468/p helper access to adjusted map (via const reg): negative range (> adjustment) OK # #469/p helper access to adjusted map (via const reg): negative range (< adjustment) OK # #470/p helper access to adjusted map (via variable): full range OK # #471/p helper access to adjusted map (via variable): partial range OK # #472/p helper access to adjusted map (via variable): empty range OK # #473/p helper access to adjusted map (via variable): no max check OK # #474/p helper access to adjusted map (via variable): wrong max check OK # #475/p helper access to map: bounds check using <, good access OK # #476/p helper access to map: bounds check using <, bad access OK # #477/p helper access to map: bounds check using <=, good access OK # #478/p helper access to map: bounds check using <=, bad access OK # #479/p helper access to map: bounds check using s<, good access OK # #480/p helper access to map: bounds check using s<, good access 2 OK # #481/p helper access to map: bounds check using s<, bad access OK # #482/p helper access to map: bounds check using s<=, good access OK # #483/p helper access to map: bounds check using s<=, good access 2 OK # #484/p helper access to map: bounds check using s<=, bad access OK # #485/p map lookup helper access to map OK # #486/p map update helper access to map OK # #487/p map update helper access to map: wrong size OK # #488/p map helper access to adjusted map (via const imm) OK # #489/p map helper access to adjusted map (via const imm): out-of-bound 1 OK # #490/p map helper access to adjusted map (via const imm): out-of-bound 2 OK # #491/p map helper access to adjusted map (via const reg) OK # #492/p map helper access to adjusted map (via const reg): out-of-bound 1 OK # #493/p map helper access to adjusted map (via const reg): out-of-bound 2 OK # #494/p map helper access to adjusted map (via variable) OK # #495/p map helper access to adjusted map (via variable): no max check OK # #496/p map helper access to adjusted map (via variable): wrong max check OK # #497/p ARG_PTR_TO_LONG uninitialized OK # #498/p ARG_PTR_TO_LONG half-uninitialized OK # #499/p ARG_PTR_TO_LONG misaligned OK # #500/p ARG_PTR_TO_LONG size < sizeof(long) OK # #501/p ARG_PTR_TO_LONG initialized OK # #502/u jit: lsh, rsh, arsh by 1 OK # #502/p jit: lsh, rsh, arsh by 1 OK # #503/u jit: mov32 for ldimm64, 1 OK # #503/p jit: mov32 for ldimm64, 1 OK # #504/u jit: mov32 for ldimm64, 2 OK # #504/p jit: mov32 for ldimm64, 2 OK # #505/u jit: various mul tests OK # #505/p jit: various mul tests OK # #506/u jit: jsgt, jslt OK # #506/p jit: jsgt, jslt OK # #507/p jset32: BPF_K 3 cases OK # #508/p jset32: BPF_X 3 cases OK # #509/u jset32: min/max deduction OK # #509/p jset32: min/max deduction OK # #510/p jeq32: BPF_K 2 cases OK # #511/p jeq32: BPF_X 3 cases OK # #512/u jeq32: min/max deduction OK # #512/p jeq32: min/max deduction OK # #513/p jne32: BPF_K 2 cases OK # #514/p jne32: BPF_X 3 cases OK # #515/u jne32: min/max deduction OK # #515/p jne32: min/max deduction OK # #516/p jge32: BPF_K 3 cases OK # #517/p jge32: BPF_X 3 cases OK # #518/u jge32: min/max deduction OK # #518/p jge32: min/max deduction OK # #519/p jgt32: BPF_K 3 cases OK # #520/p jgt32: BPF_X 3 cases OK # #521/u jgt32: min/max deduction OK # #521/p jgt32: min/max deduction OK # #522/p jle32: BPF_K 3 cases OK # #523/p jle32: BPF_X 3 cases OK # #524/u jle32: min/max deduction OK # #524/p jle32: min/max deduction OK # #525/p jlt32: BPF_K 3 cases OK # #526/p jlt32: BPF_X 3 cases OK # #527/u jlt32: min/max deduction OK # #527/p jlt32: min/max deduction OK # #528/p jsge32: BPF_K 3 cases OK # #529/p jsge32: BPF_X 3 cases OK # #530/u jsge32: min/max deduction OK # #530/p jsge32: min/max deduction OK # #531/p jsgt32: BPF_K 3 cases OK # #532/p jsgt32: BPF_X 3 cases OK # #533/u jsgt32: min/max deduction OK # #533/p jsgt32: min/max deduction OK # #534/p jsle32: BPF_K 3 cases OK # #535/p jsle32: BPF_X 3 cases OK # #536/u jsle32: min/max deduction OK # #536/p jsle32: min/max deduction OK # #537/p jslt32: BPF_K 3 cases OK # #538/p jslt32: BPF_X 3 cases OK # #539/u jslt32: min/max deduction OK # #539/p jslt32: min/max deduction OK # #540/p jset: functional 7 cases OK # #541/p jset: sign-extend OK # #542/u jset: known const compare OK # #542/p jset: known const compare OK # #543/u jset: known const compare bad OK # #543/p jset: known const compare bad OK # #544/u jset: unknown const compare taken OK # #544/p jset: unknown const compare taken OK # #545/u jset: unknown const compare not taken OK # #545/p jset: unknown const compare not taken OK # #546/u jset: half-known const compare OK # #546/p jset: half-known const compare OK # #547/u jset: range OK # #547/p jset: range OK # #548/u jump test 1 OK # #548/p jump test 1 OK # #549/u jump test 2 OK # #549/p jump test 2 OK # #550/u jump test 3 OK # #550/p jump test 3 OK # #551/u jump test 4 OK # #551/p jump test 4 OK # #552/u jump test 5 OK # #552/p jump test 5 OK # #553/u jump test 6 OK # #553/p jump test 6 OK # #554/u jump test 7 OK # #554/p jump test 7 OK # #555/u jump test 8 OK # #555/p jump test 8 OK # #556/p jump/call test 9 OK # #557/p jump/call test 10 OK # #558/p jump/call test 11 OK # #559/u junk insn OK # #559/p junk insn OK # #560/u junk insn2 OK # #560/p junk insn2 OK # #561/u junk insn3 OK # #561/p junk insn3 OK # #562/u junk insn4 OK # #562/p junk insn4 OK # #563/u junk insn5 OK # #563/p junk insn5 OK # #564/u ld_abs: check calling conv, r1 OK # #564/p ld_abs: check calling conv, r1 OK # #565/u ld_abs: check calling conv, r2 OK # #565/p ld_abs: check calling conv, r2 OK # #566/u ld_abs: check calling conv, r3 OK # #566/p ld_abs: check calling conv, r3 OK # #567/u ld_abs: check calling conv, r4 OK # #567/p ld_abs: check calling conv, r4 OK # #568/u ld_abs: check calling conv, r5 OK # #568/p ld_abs: check calling conv, r5 OK # #569/u ld_abs: check calling conv, r7 OK # #569/p ld_abs: check calling conv, r7 OK # #570/p ld_abs: tests on r6 and skb data reload helper OK # #571/p ld_abs: invalid op 1 OK # #572/p ld_abs: invalid op 2 OK # #573/p ld_abs: nmap reduced OK # #574/p ld_abs: div + abs, test 1 OK # #575/p ld_abs: div + abs, test 2 OK # #576/p ld_abs: div + abs, test 3 OK # #577/p ld_abs: div + abs, test 4 OK # #578/p ld_abs: vlan + abs, test 1 OK # #579/p ld_abs: vlan + abs, test 2 OK # #580/p ld_abs: jump around ld_abs OK # #581/p ld_dw: xor semi-random 64 bit imms, test 1 OK # #582/p ld_dw: xor semi-random 64 bit imms, test 2 OK # #583/p ld_dw: xor semi-random 64 bit imms, test 3 OK # #584/p ld_dw: xor semi-random 64 bit imms, test 4 OK # #585/p ld_dw: xor semi-random 64 bit imms, test 5 OK # #586/u test1 ld_imm64 OK # #586/p test1 ld_imm64 OK # #587/u test2 ld_imm64 OK # #587/p test2 ld_imm64 OK # #588/u test3 ld_imm64 OK # #588/p test3 ld_imm64 OK # #589/u test4 ld_imm64 OK # #589/p test4 ld_imm64 OK # #590/u test5 ld_imm64 OK # #590/p test5 ld_imm64 OK # #591/u test6 ld_imm64 OK # #591/p test6 ld_imm64 OK # #592/u test7 ld_imm64 OK # #592/p test7 ld_imm64 OK # #593/u test8 ld_imm64 OK # #593/p test8 ld_imm64 OK # #594/u test9 ld_imm64 OK # #594/p test9 ld_imm64 OK # #595/u test10 ld_imm64 OK # #595/p test10 ld_imm64 OK # #596/u test11 ld_imm64 OK # #596/p test11 ld_imm64 OK # #597/u test12 ld_imm64 OK # #597/p test12 ld_imm64 OK # #598/u test13 ld_imm64 OK # #598/p test13 ld_imm64 OK # #599/u test14 ld_imm64: reject 2nd imm != 0 OK # #599/p test14 ld_imm64: reject 2nd imm != 0 OK # #600/u ld_ind: check calling conv, r1 OK # #600/p ld_ind: check calling conv, r1 OK # #601/u ld_ind: check calling conv, r2 OK # #601/p ld_ind: check calling conv, r2 OK # #602/u ld_ind: check calling conv, r3 OK # #602/p ld_ind: check calling conv, r3 OK # #603/u ld_ind: check calling conv, r4 OK # #603/p ld_ind: check calling conv, r4 OK # #604/u ld_ind: check calling conv, r5 OK # #604/p ld_ind: check calling conv, r5 OK # #605/u ld_ind: check calling conv, r7 OK # #605/p ld_ind: check calling conv, r7 OK # #606/u leak pointer into ctx 1 OK # #606/p leak pointer into ctx 1 OK # #607/u leak pointer into ctx 2 OK # #607/p leak pointer into ctx 2 OK # #608/u leak pointer into ctx 3 OK # #608/p leak pointer into ctx 3 OK # #609/u leak pointer into map val OK # #609/p leak pointer into map val OK # #610/p invalid direct packet write for LWT_IN OK # #611/p invalid direct packet write for LWT_OUT OK # #612/p direct packet write for LWT_XMIT OK # #613/p direct packet read for LWT_IN OK # #614/p direct packet read for LWT_OUT OK # #615/p direct packet read for LWT_XMIT OK # #616/p overlapping checks for direct packet access OK # #617/p make headroom for LWT_XMIT OK # #618/u invalid access of tc_classid for LWT_IN OK # #618/p invalid access of tc_classid for LWT_IN OK # #619/u invalid access of tc_classid for LWT_OUT OK # #619/p invalid access of tc_classid for LWT_OUT OK # #620/u invalid access of tc_classid for LWT_XMIT OK # #620/p invalid access of tc_classid for LWT_XMIT OK # #621/p check skb->tc_classid half load not permitted for lwt prog OK # #622/u map in map access OK # #622/p map in map access OK # #623/u invalid inner map pointer OK # #623/p invalid inner map pointer OK # #624/u forgot null checking on the inner map pointer OK # #624/p forgot null checking on the inner map pointer OK # #625/p calls: two calls returning different map pointers for lookup (hash, array) OK # #626/p calls: two calls returning different map pointers for lookup (hash, map in map) OK # #627/u cond: two branches returning different map pointers for lookup (tail, tail) OK # #627/p cond: two branches returning different map pointers for lookup (tail, tail) OK # #628/u cond: two branches returning same map pointers for lookup (tail, tail) OK # #628/p cond: two branches returning same map pointers for lookup (tail, tail) OK # #629/u invalid map_fd for function call OK # #629/p invalid map_fd for function call OK # #630/u don't check return value before access OK # #630/p don't check return value before access OK # #631/u access memory with incorrect alignment OK # #631/p access memory with incorrect alignment OK # #632/u sometimes access memory with incorrect alignment OK # #632/p sometimes access memory with incorrect alignment OK # #633/u masking, test out of bounds 1 OK # #633/p masking, test out of bounds 1 OK # #634/u masking, test out of bounds 2 OK # #634/p masking, test out of bounds 2 OK # #635/u masking, test out of bounds 3 OK # #635/p masking, test out of bounds 3 OK # #636/u masking, test out of bounds 4 OK # #636/p masking, test out of bounds 4 OK # #637/u masking, test out of bounds 5 OK # #637/p masking, test out of bounds 5 OK # #638/u masking, test out of bounds 6 OK # #638/p masking, test out of bounds 6 OK # #639/u masking, test out of bounds 7 OK # #639/p masking, test out of bounds 7 OK # #640/u masking, test out of bounds 8 OK # #640/p masking, test out of bounds 8 OK # #641/u masking, test out of bounds 9 OK # #641/p masking, test out of bounds 9 OK # #642/u masking, test out of bounds 10 OK # #642/p masking, test out of bounds 10 OK # #643/u masking, test out of bounds 11 OK # #643/p masking, test out of bounds 11 OK # #644/u masking, test out of bounds 12 OK # #644/p masking, test out of bounds 12 OK # #645/u masking, test in bounds 1 OK # #645/p masking, test in bounds 1 OK # #646/u masking, test in bounds 2 OK # #646/p masking, test in bounds 2 OK # #647/u masking, test in bounds 3 OK # #647/p masking, test in bounds 3 OK # #648/u masking, test in bounds 4 OK # #648/p masking, test in bounds 4 OK # #649/u masking, test in bounds 5 OK # #649/p masking, test in bounds 5 OK # #650/u masking, test in bounds 6 OK # #650/p masking, test in bounds 6 OK # #651/u masking, test in bounds 7 OK # #651/p masking, test in bounds 7 OK # #652/u masking, test in bounds 8 OK # #652/p masking, test in bounds 8 OK # #653/p meta access, test1 OK # #654/p meta access, test2 OK # #655/p meta access, test3 OK # #656/p meta access, test4 OK # #657/p meta access, test5 OK # #658/p meta access, test6 OK # #659/p meta access, test7 OK # #660/p meta access, test8 OK # #661/p meta access, test9 OK # #662/p meta access, test10 OK # #663/p meta access, test11 OK # #664/p meta access, test12 OK # #665/p check bpf_perf_event_data->sample_period byte load permitted OK # #666/p check bpf_perf_event_data->sample_period half load permitted OK # #667/p check bpf_perf_event_data->sample_period word load permitted OK # #668/p check bpf_perf_event_data->sample_period dword load permitted OK # #669/p prevent map lookup in sockmap OK # #670/p prevent map lookup in sockhash OK # #671/p prevent map lookup in xskmap SKIP (unsupported map type 17) # #672/p prevent map lookup in stack trace OK # #673/u prevent map lookup in prog array OK # #673/p prevent map lookup in prog array OK # #674/p raw_stack: no skb_load_bytes OK # #675/p raw_stack: skb_load_bytes, negative len OK # #676/p raw_stack: skb_load_bytes, negative len 2 OK # #677/p raw_stack: skb_load_bytes, zero len OK # #678/p raw_stack: skb_load_bytes, no init OK # #679/p raw_stack: skb_load_bytes, init OK # #680/p raw_stack: skb_load_bytes, spilled regs around bounds OK # #681/p raw_stack: skb_load_bytes, spilled regs corruption OK # #682/p raw_stack: skb_load_bytes, spilled regs corruption 2 OK # #683/p raw_stack: skb_load_bytes, spilled regs + data OK # #684/p raw_stack: skb_load_bytes, invalid access 1 OK # #685/p raw_stack: skb_load_bytes, invalid access 2 OK # #686/p raw_stack: skb_load_bytes, invalid access 3 OK # #687/p raw_stack: skb_load_bytes, invalid access 4 OK # #688/p raw_stack: skb_load_bytes, invalid access 5 OK # #689/p raw_stack: skb_load_bytes, invalid access 6 OK # #690/p raw_stack: skb_load_bytes, large access OK # #691/p raw_tracepoint_writable: reject variable offset OK # #692/p reference tracking: leak potential reference OK # #693/p reference tracking: leak potential reference to sock_common OK # #694/p reference tracking: leak potential reference on stack OK # #695/p reference tracking: leak potential reference on stack 2 OK # #696/p reference tracking: zero potential reference OK # #697/p reference tracking: zero potential reference to sock_common OK # #698/p reference tracking: copy and zero potential references OK # #699/p reference tracking: release reference without check OK # #700/p reference tracking: release reference to sock_common without check OK # #701/p reference tracking: release reference OK # #702/p reference tracking: release reference to sock_common OK # #703/p reference tracking: release reference 2 OK # #704/p reference tracking: release reference twice OK # #705/p reference tracking: release reference twice inside branch OK # #706/p reference tracking: alloc, check, free in one subbranch OK # #707/p reference tracking: alloc, check, free in both subbranches OK # #708/p reference tracking in call: free reference in subprog OK # #709/p reference tracking in call: free reference in subprog and outside OK # #710/p reference tracking in call: alloc & leak reference in subprog OK # #711/p reference tracking in call: alloc in subprog, release outside OK # #712/p reference tracking in call: sk_ptr leak into caller stack OK # #713/p reference tracking in call: sk_ptr spill into caller stack OK # #714/p reference tracking: allow LD_ABS OK # #715/p reference tracking: forbid LD_ABS while holding reference OK # #716/p reference tracking: allow LD_IND OK # #717/p reference tracking: forbid LD_IND while holding reference OK # #718/p reference tracking: check reference or tail call OK # #719/p reference tracking: release reference then tail call OK # #720/p reference tracking: leak possible reference over tail call OK # #721/p reference tracking: leak checked reference over tail call OK # #722/p reference tracking: mangle and release sock_or_null OK # #723/p reference tracking: mangle and release sock OK # #724/p reference tracking: access member OK # #725/p reference tracking: write to member OK # #726/p reference tracking: invalid 64-bit access of member OK # #727/p reference tracking: access after release OK # #728/p reference tracking: direct access for lookup OK # #729/p reference tracking: use ptr from bpf_tcp_sock() after release OK # #730/p reference tracking: use ptr from bpf_sk_fullsock() after release OK # #731/p reference tracking: use ptr from bpf_sk_fullsock(tp) after release OK # #732/p reference tracking: use sk after bpf_sk_release(tp) OK # #733/p reference tracking: use ptr from bpf_get_listener_sock() after bpf_sk_release(sk) OK # #734/p reference tracking: bpf_sk_release(listen_sk) OK # #735/p reference tracking: tp->snd_cwnd after bpf_sk_fullsock(sk) and bpf_tcp_sock(sk) OK # #736/u runtime/jit: tail_call within bounds, prog once OK # #736/p runtime/jit: tail_call within bounds, prog once OK # #737/u runtime/jit: tail_call within bounds, prog loop OK # #737/p runtime/jit: tail_call within bounds, prog loop OK # #738/u runtime/jit: tail_call within bounds, no prog OK # #738/p runtime/jit: tail_call within bounds, no prog OK # #739/u runtime/jit: tail_call out of bounds OK # #739/p runtime/jit: tail_call out of bounds OK # #740/u runtime/jit: pass negative index to tail_call OK # #740/p runtime/jit: pass negative index to tail_call OK # #741/u runtime/jit: pass > 32bit index to tail_call OK # #741/p runtime/jit: pass > 32bit index to tail_call OK # #742/p scale: scale test 1 OK # #743/p scale: scale test 2 OK # #744/u pointer/scalar confusion in state equality check (way 1) OK # #744/p pointer/scalar confusion in state equality check (way 1) OK # #745/u pointer/scalar confusion in state equality check (way 2) OK # #745/p pointer/scalar confusion in state equality check (way 2) OK # #746/p liveness pruning and write screening OK # #747/u varlen_map_value_access pruning OK # #747/p varlen_map_value_access pruning OK # #748/p search pruning: all branches should be verified (nop operation) OK # #749/p search pruning: all branches should be verified (invalid stack access) OK # #750/u allocated_stack OK # #750/p allocated_stack OK # #751/u skb->sk: no NULL check OK # #751/p skb->sk: no NULL check OK # #752/u skb->sk: sk->family [non fullsock field] OK # #752/p skb->sk: sk->family [non fullsock field] OK # #753/u skb->sk: sk->type [fullsock field] OK # #753/p skb->sk: sk->type [fullsock field] OK # #754/u bpf_sk_fullsock(skb->sk): no !skb->sk check OK # #754/p bpf_sk_fullsock(skb->sk): no !skb->sk check OK # #755/u sk_fullsock(skb->sk): no NULL check on ret OK # #755/p sk_fullsock(skb->sk): no NULL check on ret OK # #756/u sk_fullsock(skb->sk): sk->type [fullsock field] OK # #756/p sk_fullsock(skb->sk): sk->type [fullsock field] OK # #757/u sk_fullsock(skb->sk): sk->family [non fullsock field] OK # #757/p sk_fullsock(skb->sk): sk->family [non fullsock field] OK # #758/u sk_fullsock(skb->sk): sk->state [narrow load] OK # #758/p sk_fullsock(skb->sk): sk->state [narrow load] OK # #759/u sk_fullsock(skb->sk): sk->dst_port [narrow load] OK # #759/p sk_fullsock(skb->sk): sk->dst_port [narrow load] OK # #760/u sk_fullsock(skb->sk): sk->dst_port [load 2nd byte] OK # #760/p sk_fullsock(skb->sk): sk->dst_port [load 2nd byte] OK # #761/u sk_fullsock(skb->sk): sk->dst_ip6 [load 2nd byte] OK # #761/p sk_fullsock(skb->sk): sk->dst_ip6 [load 2nd byte] OK # #762/u sk_fullsock(skb->sk): sk->type [narrow load] OK # #762/p sk_fullsock(skb->sk): sk->type [narrow load] OK # #763/u sk_fullsock(skb->sk): sk->protocol [narrow load] OK # #763/p sk_fullsock(skb->sk): sk->protocol [narrow load] OK # #764/u sk_fullsock(skb->sk): beyond last field OK # #764/p sk_fullsock(skb->sk): beyond last field OK # #765/u bpf_tcp_sock(skb->sk): no !skb->sk check OK # #765/p bpf_tcp_sock(skb->sk): no !skb->sk check OK # #766/u bpf_tcp_sock(skb->sk): no NULL check on ret OK # #766/p bpf_tcp_sock(skb->sk): no NULL check on ret OK # #767/u bpf_tcp_sock(skb->sk): tp->snd_cwnd OK # #767/p bpf_tcp_sock(skb->sk): tp->snd_cwnd OK # #768/u bpf_tcp_sock(skb->sk): tp->bytes_acked OK # #768/p bpf_tcp_sock(skb->sk): tp->bytes_acked OK # #769/u bpf_tcp_sock(skb->sk): beyond last field OK # #769/p bpf_tcp_sock(skb->sk): beyond last field OK # #770/u bpf_tcp_sock(bpf_sk_fullsock(skb->sk)): tp->snd_cwnd OK # #770/p bpf_tcp_sock(bpf_sk_fullsock(skb->sk)): tp->snd_cwnd OK # #771/p bpf_sk_release(skb->sk) OK # #772/p bpf_sk_release(bpf_sk_fullsock(skb->sk)) OK # #773/p bpf_sk_release(bpf_tcp_sock(skb->sk)) OK # #774/p sk_storage_get(map, skb->sk, NULL, 0): value == NULL OK # #775/p sk_storage_get(map, skb->sk, 1, 1): value == 1 OK # #776/p sk_storage_get(map, skb->sk, &stack_value, 1): stack_value OK # #777/p sk_storage_get(map, skb->sk, &stack_value, 1): partially init stack_value OK # #778/p bpf_map_lookup_elem(smap, &key) OK # #779/u check valid spill/fill OK # #779/p check valid spill/fill OK # #780/u check valid spill/fill, skb mark OK # #780/p check valid spill/fill, skb mark OK # #781/u check corrupted spill/fill OK # #781/p check corrupted spill/fill OK # #782/u check corrupted spill/fill, LSB OK # #782/p check corrupted spill/fill, LSB OK # #783/u check corrupted spill/fill, MSB OK # #783/p check corrupted spill/fill, MSB OK # #784/u spin_lock: test1 success OK # #784/p spin_lock: test1 success OK # #785/u spin_lock: test2 direct ld/st OK # #785/p spin_lock: test2 direct ld/st OK # #786/u spin_lock: test3 direct ld/st OK # #786/p spin_lock: test3 direct ld/st OK # #787/u spin_lock: test4 direct ld/st OK # #787/p spin_lock: test4 direct ld/st OK # #788/u spin_lock: test5 call within a locked region OK # #788/p spin_lock: test5 call within a locked region OK # #789/u spin_lock: test6 missing unlock OK # #789/p spin_lock: test6 missing unlock OK # #790/u spin_lock: test7 unlock without lock OK # #790/p spin_lock: test7 unlock without lock OK # #791/u spin_lock: test8 double lock OK # #791/p spin_lock: test8 double lock OK # #792/u spin_lock: test9 different lock OK # #792/p spin_lock: test9 different lock OK # #793/u spin_lock: test10 lock in subprog without unlock OK # #793/p spin_lock: test10 lock in subprog without unlock OK # #794/p spin_lock: test11 ld_abs under lock OK # #795/u PTR_TO_STACK store/load OK # #795/p PTR_TO_STACK store/load OK # #796/u PTR_TO_STACK store/load - bad alignment on off OK # #796/p PTR_TO_STACK store/load - bad alignment on off OK # #797/u PTR_TO_STACK store/load - bad alignment on reg OK # #797/p PTR_TO_STACK store/load - bad alignment on reg OK # #798/u PTR_TO_STACK store/load - out of bounds low OK # #798/p PTR_TO_STACK store/load - out of bounds low OK # #799/u PTR_TO_STACK store/load - out of bounds high OK # #799/p PTR_TO_STACK store/load - out of bounds high OK # #800/u PTR_TO_STACK check high 1 OK # #800/p PTR_TO_STACK check high 1 OK # #801/u PTR_TO_STACK check high 2 OK # #801/p PTR_TO_STACK check high 2 OK # #802/u PTR_TO_STACK check high 3 OK # #802/p PTR_TO_STACK check high 3 OK # #803/u PTR_TO_STACK check high 4 OK # #803/p PTR_TO_STACK check high 4 OK # #804/u PTR_TO_STACK check high 5 OK # #804/p PTR_TO_STACK check high 5 OK # #805/u PTR_TO_STACK check high 6 OK # #805/p PTR_TO_STACK check high 6 OK # #806/u PTR_TO_STACK check high 7 OK # #806/p PTR_TO_STACK check high 7 OK # #807/u PTR_TO_STACK check low 1 OK # #807/p PTR_TO_STACK check low 1 OK # #808/u PTR_TO_STACK check low 2 OK # #808/p PTR_TO_STACK check low 2 OK # #809/u PTR_TO_STACK check low 3 OK # #809/p PTR_TO_STACK check low 3 OK # #810/u PTR_TO_STACK check low 4 OK # #810/p PTR_TO_STACK check low 4 OK # #811/u PTR_TO_STACK check low 5 OK # #811/p PTR_TO_STACK check low 5 OK # #812/u PTR_TO_STACK check low 6 OK # #812/p PTR_TO_STACK check low 6 OK # #813/u PTR_TO_STACK check low 7 OK # #813/p PTR_TO_STACK check low 7 OK # #814/u PTR_TO_STACK mixed reg/k, 1 OK # #814/p PTR_TO_STACK mixed reg/k, 1 OK # #815/u PTR_TO_STACK mixed reg/k, 2 OK # #815/p PTR_TO_STACK mixed reg/k, 2 OK # #816/u PTR_TO_STACK mixed reg/k, 3 OK # #816/p PTR_TO_STACK mixed reg/k, 3 OK # #817/u PTR_TO_STACK reg OK # #817/p PTR_TO_STACK reg OK # #818/u stack pointer arithmetic OK # #818/p stack pointer arithmetic OK # #819/u read uninitialized register OK # #819/p read uninitialized register OK # #820/u read invalid register OK # #820/p read invalid register OK # #821/u program doesn't init R0 before exit OK # #821/p program doesn't init R0 before exit OK # #822/u program doesn't init R0 before exit in all branches OK # #822/p program doesn't init R0 before exit in all branches OK # #823/u unpriv: return pointer OK # #823/p unpriv: return pointer OK # #824/u unpriv: add const to pointer OK # #824/p unpriv: add const to pointer OK # #825/u unpriv: add pointer to pointer OK # #825/p unpriv: add pointer to pointer OK # #826/u unpriv: neg pointer OK # #826/p unpriv: neg pointer OK # #827/u unpriv: cmp pointer with const OK # #827/p unpriv: cmp pointer with const OK # #828/u unpriv: cmp pointer with pointer OK # #828/p unpriv: cmp pointer with pointer OK # #829/p unpriv: check that printk is disallowed OK # #830/u unpriv: pass pointer to helper function OK # #830/p unpriv: pass pointer to helper function OK # #831/u unpriv: indirectly pass pointer on stack to helper function OK # #831/p unpriv: indirectly pass pointer on stack to helper function OK # #832/u unpriv: mangle pointer on stack 1 OK # #832/p unpriv: mangle pointer on stack 1 OK # #833/u unpriv: mangle pointer on stack 2 OK # #833/p unpriv: mangle pointer on stack 2 OK # #834/u unpriv: read pointer from stack in small chunks OK # #834/p unpriv: read pointer from stack in small chunks OK # #835/u unpriv: write pointer into ctx OK # #835/p unpriv: write pointer into ctx OK # #836/u unpriv: spill/fill of ctx OK # #836/p unpriv: spill/fill of ctx OK # #837/p unpriv: spill/fill of ctx 2 OK # #838/p unpriv: spill/fill of ctx 3 OK # #839/p unpriv: spill/fill of ctx 4 OK # #840/p unpriv: spill/fill of different pointers stx OK # #841/p unpriv: spill/fill of different pointers stx - ctx and sock OK # #842/p unpriv: spill/fill of different pointers stx - leak sock OK # #843/p unpriv: spill/fill of different pointers stx - sock and ctx (read) OK # #844/p unpriv: spill/fill of different pointers stx - sock and ctx (write) OK # #845/p unpriv: spill/fill of different pointers ldx OK # #846/u unpriv: write pointer into map elem value OK # #846/p unpriv: write pointer into map elem value OK # #847/u alu32: mov u32 const OK # #847/p alu32: mov u32 const OK # #848/u unpriv: partial copy of pointer OK # #848/p unpriv: partial copy of pointer OK # #849/u unpriv: pass pointer to tail_call OK # #849/p unpriv: pass pointer to tail_call OK # #850/u unpriv: cmp map pointer with zero OK # #850/p unpriv: cmp map pointer with zero OK # #851/u unpriv: write into frame pointer OK # #851/p unpriv: write into frame pointer OK # #852/u unpriv: spill/fill frame pointer OK # #852/p unpriv: spill/fill frame pointer OK # #853/u unpriv: cmp of frame pointer OK # #853/p unpriv: cmp of frame pointer OK # #854/u unpriv: adding of fp OK # #854/p unpriv: adding of fp OK # #855/u unpriv: cmp of stack pointer OK # #855/p unpriv: cmp of stack pointer OK # #856/u map element value store of cleared call register OK # #856/p map element value store of cleared call register OK # #857/u map element value with unaligned store OK # #857/p map element value with unaligned store OK # #858/u map element value with unaligned load OK # #858/p map element value with unaligned load OK # #859/u map element value is preserved across register spilling OK # #859/p map element value is preserved across register spilling OK # #860/u map element value is preserved across register spilling OK # #860/p map element value is preserved across register spilling OK # #861/u map element value or null is marked on register spilling OK # #861/p map element value or null is marked on register spilling OK # #862/u map element value illegal alu op, 1 OK # #862/p map element value illegal alu op, 1 OK # #863/u map element value illegal alu op, 2 OK # #863/p map element value illegal alu op, 2 OK # #864/u map element value illegal alu op, 3 OK # #864/p map element value illegal alu op, 3 OK # #865/u map element value illegal alu op, 4 OK # #865/p map element value illegal alu op, 4 OK # #866/u map element value illegal alu op, 5 OK # #866/p map element value illegal alu op, 5 OK # #867/p multiple registers share map_lookup_elem result OK # #868/p alu ops on ptr_to_map_value_or_null, 1 OK # #869/p alu ops on ptr_to_map_value_or_null, 2 OK # #870/p alu ops on ptr_to_map_value_or_null, 3 OK # #871/p invalid memory access with multiple map_lookup_elem calls OK # #872/p valid indirect map_lookup_elem access with 2nd lookup in branch OK # #873/u invalid map access from else condition OK # #873/p invalid map access from else condition OK # #874/u map access: known scalar += value_ptr from different maps OK # #874/p map access: known scalar += value_ptr from different maps OK # #875/u map access: value_ptr -= known scalar from different maps OK # #875/p map access: value_ptr -= known scalar from different maps OK # #876/u map access: known scalar += value_ptr from different maps, but same value properties OK # #876/p map access: known scalar += value_ptr from different maps, but same value properties OK # #877/u map access: mixing value pointer and scalar, 1 OK # #877/p map access: mixing value pointer and scalar, 1 OK # #878/u map access: mixing value pointer and scalar, 2 OK # #878/p map access: mixing value pointer and scalar, 2 OK # #879/u sanitation: alu with different scalars 1 OK # #879/p sanitation: alu with different scalars 1 OK # #880/u sanitation: alu with different scalars 2 OK # #880/p sanitation: alu with different scalars 2 OK # #881/u sanitation: alu with different scalars 3 OK # #881/p sanitation: alu with different scalars 3 OK # #882/u map access: value_ptr += known scalar, upper oob arith, test 1 OK # #882/p map access: value_ptr += known scalar, upper oob arith, test 1 OK # #883/u map access: value_ptr += known scalar, upper oob arith, test 2 OK # #883/p map access: value_ptr += known scalar, upper oob arith, test 2 OK # #884/u map access: value_ptr += known scalar, upper oob arith, test 3 OK # #884/p map access: value_ptr += known scalar, upper oob arith, test 3 OK # #885/u map access: value_ptr -= known scalar, lower oob arith, test 1 OK # #885/p map access: value_ptr -= known scalar, lower oob arith, test 1 OK # #886/u map access: value_ptr -= known scalar, lower oob arith, test 2 OK # #886/p map access: value_ptr -= known scalar, lower oob arith, test 2 OK # #887/u map access: value_ptr -= known scalar, lower oob arith, test 3 OK # #887/p map access: value_ptr -= known scalar, lower oob arith, test 3 OK # #888/u map access: known scalar += value_ptr OK # #888/p map access: known scalar += value_ptr OK # #889/u map access: value_ptr += known scalar, 1 OK # #889/p map access: value_ptr += known scalar, 1 OK # #890/u map access: value_ptr += known scalar, 2 OK # #890/p map access: value_ptr += known scalar, 2 OK # #891/u map access: value_ptr += known scalar, 3 OK # #891/p map access: value_ptr += known scalar, 3 OK # #892/u map access: value_ptr += known scalar, 4 OK # #892/p map access: value_ptr += known scalar, 4 OK # #893/u map access: value_ptr += known scalar, 5 OK # #893/p map access: value_ptr += known scalar, 5 OK # #894/u map access: value_ptr += known scalar, 6 OK # #894/p map access: value_ptr += known scalar, 6 OK # #895/u map access: unknown scalar += value_ptr, 1 OK # #895/p map access: unknown scalar += value_ptr, 1 OK # #896/u map access: unknown scalar += value_ptr, 2 OK # #896/p map access: unknown scalar += value_ptr, 2 OK # #897/u map access: unknown scalar += value_ptr, 3 OK # #897/p map access: unknown scalar += value_ptr, 3 OK # #898/u map access: unknown scalar += value_ptr, 4 OK # #898/p map access: unknown scalar += value_ptr, 4 OK # #899/u map access: value_ptr += unknown scalar, 1 OK # #899/p map access: value_ptr += unknown scalar, 1 OK # #900/u map access: value_ptr += unknown scalar, 2 OK # #900/p map access: value_ptr += unknown scalar, 2 OK # #901/u map access: value_ptr += unknown scalar, 3 OK # #901/p map access: value_ptr += unknown scalar, 3 OK # #902/u map access: value_ptr += value_ptr OK # #902/p map access: value_ptr += value_ptr OK # #903/u map access: known scalar -= value_ptr OK # #903/p map access: known scalar -= value_ptr OK # #904/u map access: value_ptr -= known scalar OK # #904/p map access: value_ptr -= known scalar OK # #905/u map access: value_ptr -= known scalar, 2 OK # #905/p map access: value_ptr -= known scalar, 2 OK # #906/u map access: unknown scalar -= value_ptr OK # #906/p map access: unknown scalar -= value_ptr OK # #907/u map access: value_ptr -= unknown scalar OK # #907/p map access: value_ptr -= unknown scalar OK # #908/u map access: value_ptr -= unknown scalar, 2 OK # #908/p map access: value_ptr -= unknown scalar, 2 OK # #909/u map access: value_ptr -= value_ptr OK # #909/p map access: value_ptr -= value_ptr OK # #910/p variable-offset ctx access OK # #911/p variable-offset stack access OK # #912/p indirect variable-offset stack access, unbounded OK # #913/p indirect variable-offset stack access, max out of bound OK # #914/p indirect variable-offset stack access, min out of bound OK # #915/p indirect variable-offset stack access, max_off+size > max_initialized OK # #916/p indirect variable-offset stack access, min_off < min_initialized OK # #917/u indirect variable-offset stack access, priv vs unpriv OK # #917/p indirect variable-offset stack access, priv vs unpriv OK # #918/p indirect variable-offset stack access, uninitialized OK # #919/p indirect variable-offset stack access, ok OK # #920/p xadd/w check unaligned stack OK # #921/p xadd/w check unaligned map OK # #922/p xadd/w check unaligned pkt OK # #923/p xadd/w check whether src/dst got mangled, 1 OK # #924/p xadd/w check whether src/dst got mangled, 2 OK # #925/p XDP, using ifindex from netdev OK # #926/p XDP pkt read, pkt_end mangling, bad access 1 OK # #927/p XDP pkt read, pkt_end mangling, bad access 2 OK # #928/p XDP pkt read, pkt_data' > pkt_end, good access OK # #929/p XDP pkt read, pkt_data' > pkt_end, bad access 1 OK # #930/p XDP pkt read, pkt_data' > pkt_end, bad access 2 OK # #931/p XDP pkt read, pkt_end > pkt_data', good access OK # #932/p XDP pkt read, pkt_end > pkt_data', bad access 1 OK # #933/p XDP pkt read, pkt_end > pkt_data', bad access 2 OK # #934/p XDP pkt read, pkt_data' < pkt_end, good access OK # #935/p XDP pkt read, pkt_data' < pkt_end, bad access 1 OK # #936/p XDP pkt read, pkt_data' < pkt_end, bad access 2 OK # #937/p XDP pkt read, pkt_end < pkt_data', good access OK # #938/p XDP pkt read, pkt_end < pkt_data', bad access 1 OK # #939/p XDP pkt read, pkt_end < pkt_data', bad access 2 OK # #940/p XDP pkt read, pkt_data' >= pkt_end, good access OK # #941/p XDP pkt read, pkt_data' >= pkt_end, bad access 1 OK # #942/p XDP pkt read, pkt_data' >= pkt_end, bad access 2 OK # #943/p XDP pkt read, pkt_end >= pkt_data', good access OK # #944/p XDP pkt read, pkt_end >= pkt_data', bad access 1 OK # #945/p XDP pkt read, pkt_end >= pkt_data', bad access 2 OK # #946/p XDP pkt read, pkt_data' <= pkt_end, good access OK # #947/p XDP pkt read, pkt_data' <= pkt_end, bad access 1 OK # #948/p XDP pkt read, pkt_data' <= pkt_end, bad access 2 OK # #949/p XDP pkt read, pkt_end <= pkt_data', good access OK # #950/p XDP pkt read, pkt_end <= pkt_data', bad access 1 OK # #951/p XDP pkt read, pkt_end <= pkt_data', bad access 2 OK # #952/p XDP pkt read, pkt_meta' > pkt_data, good access OK # #953/p XDP pkt read, pkt_meta' > pkt_data, bad access 1 OK # #954/p XDP pkt read, pkt_meta' > pkt_data, bad access 2 OK # #955/p XDP pkt read, pkt_data > pkt_meta', good access OK # #956/p XDP pkt read, pkt_data > pkt_meta', bad access 1 OK # #957/p XDP pkt read, pkt_data > pkt_meta', bad access 2 OK # #958/p XDP pkt read, pkt_meta' < pkt_data, good access OK # #959/p XDP pkt read, pkt_meta' < pkt_data, bad access 1 OK # #960/p XDP pkt read, pkt_meta' < pkt_data, bad access 2 OK # #961/p XDP pkt read, pkt_data < pkt_meta', good access OK # #962/p XDP pkt read, pkt_data < pkt_meta', bad access 1 OK # #963/p XDP pkt read, pkt_data < pkt_meta', bad access 2 OK # #964/p XDP pkt read, pkt_meta' >= pkt_data, good access OK # #965/p XDP pkt read, pkt_meta' >= pkt_data, bad access 1 OK # #966/p XDP pkt read, pkt_meta' >= pkt_data, bad access 2 OK # #967/p XDP pkt read, pkt_data >= pkt_meta', good access OK # #968/p XDP pkt read, pkt_data >= pkt_meta', bad access 1 OK # #969/p XDP pkt read, pkt_data >= pkt_meta', bad access 2 OK # #970/p XDP pkt read, pkt_meta' <= pkt_data, good access OK # #971/p XDP pkt read, pkt_meta' <= pkt_data, bad access 1 OK # #972/p XDP pkt read, pkt_meta' <= pkt_data, bad access 2 OK # #973/p XDP pkt read, pkt_data <= pkt_meta', good access OK # #974/p XDP pkt read, pkt_data <= pkt_meta', bad access 1 OK # #975/p XDP pkt read, pkt_data <= pkt_meta', bad access 2 OK # Summary: 1438 PASSED, 1 SKIPPED, 0 FAILED ok 1 selftests: bpf: test_verifier # selftests: bpf: test_tag # test_tag: OK (40945 tests) ok 2 selftests: bpf: test_tag # selftests: bpf: test_maps # libbpf: BTF is required, but is missing or corrupted. # Failed to load SK_SKB verdict prog not ok 3 selftests: bpf: test_maps # selftests: bpf: test_lru_map # nr_cpus:2 # # test_lru_sanity0 (map_type:9 map_flags:0x0): Pass # test_lru_sanity1 (map_type:9 map_flags:0x0): Pass # test_lru_sanity2 (map_type:9 map_flags:0x0): Pass # test_lru_sanity3 (map_type:9 map_flags:0x0): Pass # test_lru_sanity4 (map_type:9 map_flags:0x0): Pass # test_lru_sanity5 (map_type:9 map_flags:0x0): Pass # test_lru_sanity7 (map_type:9 map_flags:0x0): Pass # test_lru_sanity8 (map_type:9 map_flags:0x0): Pass # # test_lru_sanity0 (map_type:10 map_flags:0x0): Pass # test_lru_sanity1 (map_type:10 map_flags:0x0): Pass # test_lru_sanity2 (map_type:10 map_flags:0x0): Pass # test_lru_sanity3 (map_type:10 map_flags:0x0): Pass # test_lru_sanity4 (map_type:10 map_flags:0x0): Pass # test_lru_sanity5 (map_type:10 map_flags:0x0): Pass # test_lru_sanity7 (map_type:10 map_flags:0x0): Pass # test_lru_sanity8 (map_type:10 map_flags:0x0): Pass # # test_lru_sanity0 (map_type:9 map_flags:0x2): Pass # test_lru_sanity4 (map_type:9 map_flags:0x2): Pass # test_lru_sanity6 (map_type:9 map_flags:0x2): Pass # test_lru_sanity7 (map_type:9 map_flags:0x2): Pass # test_lru_sanity8 (map_type:9 map_flags:0x2): Pass # # test_lru_sanity0 (map_type:10 map_flags:0x2): Pass # test_lru_sanity4 (map_type:10 map_flags:0x2): Pass # test_lru_sanity6 (map_type:10 map_flags:0x2): Pass # test_lru_sanity7 (map_type:10 map_flags:0x2): Pass # test_lru_sanity8 (map_type:10 map_flags:0x2): Pass # ok 4 selftests: bpf: test_lru_map # selftests: bpf: test_lpm_map # test_lpm: OK ok 5 selftests: bpf: test_lpm_map # selftests: bpf: test_progs /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/kselftest/runner.sh: line 28: 9331 Aborted ./$BASENAME_TEST 2>&1 # libbpf: BTF is required, but is missing or corrupted. # test_progs: prog_tests/bpf_obj_id.c:53: test_bpf_obj_id: Assertion `!err' failed. not ok 6 selftests: bpf: test_progs # selftests: bpf: test_align # Test 0: mov ... PASS # Test 1: shift ... PASS # Test 2: addsub ... PASS # Test 3: mul ... PASS # Test 4: unknown shift ... PASS # Test 5: unknown mul ... PASS # Test 6: packet const offset ... PASS # Test 7: packet variable offset ... PASS # Test 8: packet variable offset 2 ... PASS # Test 9: dubious pointer arithmetic ... PASS # Test 10: variable subtraction ... PASS # Test 11: pointer variable subtraction ... PASS # Results: 12 pass 0 fail ok 7 selftests: bpf: test_align # selftests: bpf: test_verifier_log # Test log_level 0... # Test log_size < 128... # Test log_buff = NULL... # Test oversized buffer... # Test exact buffer... # Test undersized buffers... # test_verifier_log: OK ok 8 selftests: bpf: test_verifier_log # selftests: bpf: test_dev_cgroup # mknod: /tmp/test_dev_cgroup_null: Operation not permitted # 64+0 records in # 64+0 records out # 32768 bytes (33 kB, 32 KiB) copied, 0.000623951 s, 52.5 MB/s # dd: failed to open '/dev/full': Operation not permitted # dd: failed to open '/dev/random': Operation not permitted # test_dev_cgroup:PASS ok 9 selftests: bpf: test_dev_cgroup # selftests: bpf: test_tcpbpf_user # libbpf: BTF is required, but is missing or corrupted. # FAILED: load_bpf_file failed for: test_tcpbpf_kern.o not ok 10 selftests: bpf: test_tcpbpf_user # selftests: bpf: test_sock # Test case: bind4 load with invalid access: src_ip6 .. [PASS] # Test case: bind4 load with invalid access: mark .. [PASS] # Test case: bind6 load with invalid access: src_ip4 .. [PASS] # Test case: sock_create load with invalid access: src_port .. [PASS] # Test case: sock_create load w/o expected_attach_type (compat mode) .. [PASS] # Test case: sock_create load w/ expected_attach_type .. [PASS] # Test case: attach type mismatch bind4 vs bind6 .. [PASS] # Test case: attach type mismatch bind6 vs bind4 .. [PASS] # Test case: attach type mismatch default vs bind4 .. [PASS] # Test case: attach type mismatch bind6 vs sock_create .. [PASS] # Test case: bind4 reject all .. [PASS] # Test case: bind6 reject all .. [PASS] # Test case: bind6 deny specific IP & port .. [PASS] # Test case: bind4 allow specific IP & port .. [PASS] # Test case: bind4 allow all .. [PASS] # Test case: bind6 allow all .. [PASS] # Summary: 16 PASSED, 0 FAILED ok 11 selftests: bpf: test_sock # selftests: bpf: test_btf # BTF raw test[1] (struct test #1): OK # BTF raw test[2] (struct test #2): OK # BTF raw test[3] (struct test #3 Invalid member offset): OK # BTF raw test[4] (global data test #1): OK # BTF raw test[5] (global data test #2): OK # BTF raw test[6] (global data test #3): OK # BTF raw test[7] (global data test #4, unsupported linkage): OK # BTF raw test[8] (global data test #5, invalid var type): OK # BTF raw test[9] (global data test #6, invalid var type (fwd type)): OK # BTF raw test[10] (global data test #7, invalid var type (fwd type)): OK # BTF raw test[11] (global data test #8, invalid var size): OK # BTF raw test[12] (global data test #9, invalid var size): OK # BTF raw test[13] (global data test #10, invalid var size): OK # BTF raw test[14] (global data test #11, multiple section members): OK # BTF raw test[15] (global data test #12, invalid offset): OK # BTF raw test[16] (global data test #13, invalid offset): OK # BTF raw test[17] (global data test #14, invalid offset): OK # BTF raw test[18] (global data test #15, not var kind): OK # BTF raw test[19] (global data test #16, invalid var referencing sec): OK # BTF raw test[20] (global data test #17, invalid var referencing var): OK # BTF raw test[21] (global data test #18, invalid var loop): OK # BTF raw test[22] (global data test #19, invalid var referencing var): OK # BTF raw test[23] (global data test #20, invalid ptr referencing var): OK # BTF raw test[24] (global data test #21, var included in struct): OK # BTF raw test[25] (global data test #22, array of var): OK # BTF raw test[26] (size check test #1): OK # BTF raw test[27] (size check test #2): OK # BTF raw test[28] (size check test #3): OK # BTF raw test[29] (size check test #4): OK # BTF raw test[30] (void test #1): OK # BTF raw test[31] (void test #2): OK # BTF raw test[32] (void test #3): OK # BTF raw test[33] (void test #4): OK # BTF raw test[34] (loop test #1): OK # BTF raw test[35] (loop test #2): OK # BTF raw test[36] (loop test #3): OK # BTF raw test[37] (loop test #4): OK # BTF raw test[38] (loop test #5): OK # BTF raw test[39] (loop test #6): OK # BTF raw test[40] (loop test #7): OK # BTF raw test[41] (loop test #8): OK # BTF raw test[42] (string section does not end with null): OK # BTF raw test[43] (empty string section): OK # BTF raw test[44] (empty type section): OK # BTF raw test[45] (btf_header test. Longer hdr_len): OK # BTF raw test[46] (btf_header test. Gap between hdr and type): OK # BTF raw test[47] (btf_header test. Gap between type and str): OK # BTF raw test[48] (btf_header test. Overlap between type and str): OK # BTF raw test[49] (btf_header test. Larger BTF size): OK # BTF raw test[50] (btf_header test. Smaller BTF size): OK # BTF raw test[51] (array test. index_type/elem_type "int"): OK # BTF raw test[52] (array test. index_type/elem_type "const int"): OK # BTF raw test[53] (array test. index_type "const int:31"): OK # BTF raw test[54] (array test. elem_type "const int:31"): OK # BTF raw test[55] (array test. index_type "void"): OK # BTF raw test[56] (array test. index_type "const void"): OK # BTF raw test[57] (array test. elem_type "const void"): OK # BTF raw test[58] (array test. elem_type "const void *"): OK # BTF raw test[59] (array test. index_type "const void *"): OK # BTF raw test[60] (array test. t->size != 0"): OK # BTF raw test[61] (int test. invalid int_data): OK # BTF raw test[62] (invalid BTF_INFO): OK # BTF raw test[63] (fwd test. t->type != 0"): OK # BTF raw test[64] (typedef (invalid name, name_off = 0)): OK # BTF raw test[65] (typedef (invalid name, invalid identifier)): OK # BTF raw test[66] (ptr type (invalid name, name_off <> 0)): OK # BTF raw test[67] (volatile type (invalid name, name_off <> 0)): OK # BTF raw test[68] (const type (invalid name, name_off <> 0)): OK # BTF raw test[69] (restrict type (invalid name, name_off <> 0)): OK # BTF raw test[70] (fwd type (invalid name, name_off = 0)): OK # BTF raw test[71] (fwd type (invalid name, invalid identifier)): OK # BTF raw test[72] (array type (invalid name, name_off <> 0)): OK # BTF raw test[73] (struct type (name_off = 0)): OK # BTF raw test[74] (struct type (invalid name, invalid identifier)): OK # BTF raw test[75] (struct member (name_off = 0)): OK # BTF raw test[76] (struct member (invalid name, invalid identifier)): OK # BTF raw test[77] (enum type (name_off = 0)): OK # BTF raw test[78] (enum type (invalid name, invalid identifier)): OK # BTF raw test[79] (enum member (invalid name, name_off = 0)): OK # BTF raw test[80] (enum member (invalid name, invalid identifier)): OK # BTF raw test[81] (arraymap invalid btf key (a bit field)): OK # BTF raw test[82] (arraymap invalid btf key (!= 32 bits)): OK # BTF raw test[83] (arraymap invalid btf value (too small)): OK # BTF raw test[84] (arraymap invalid btf value (too big)): OK # BTF raw test[85] (func proto (int (*)(int, unsigned int))): OK # BTF raw test[86] (func proto (vararg)): OK # BTF raw test[87] (func proto (vararg with name)): OK # BTF raw test[88] (func proto (arg after vararg)): OK # BTF raw test[89] (func proto (CONST=>TYPEDEF=>PTR=>FUNC_PROTO)): OK # BTF raw test[90] (func proto (TYPEDEF=>FUNC_PROTO)): OK # BTF raw test[91] (func proto (btf_resolve(arg))): OK # BTF raw test[92] (func proto (Not all arg has name)): OK # BTF raw test[93] (func proto (Bad arg name_off)): OK # BTF raw test[94] (func proto (Bad arg name)): OK # BTF raw test[95] (func proto (Invalid return type)): OK # BTF raw test[96] (func proto (with func name)): OK # BTF raw test[97] (func proto (const void arg)): OK # BTF raw test[98] (func (void func(int a, unsigned int b))): OK # BTF raw test[99] (func (No func name)): OK # BTF raw test[100] (func (Invalid func name)): OK # BTF raw test[101] (func (Some arg has no name)): OK # BTF raw test[102] (func (Non zero vlen)): OK # BTF raw test[103] (func (Not referring to FUNC_PROTO)): OK # BTF raw test[104] (invalid int kind_flag): OK # BTF raw test[105] (invalid ptr kind_flag): OK # BTF raw test[106] (invalid array kind_flag): OK # BTF raw test[107] (invalid enum kind_flag): OK # BTF raw test[108] (valid fwd kind_flag): OK # BTF raw test[109] (invalid typedef kind_flag): OK # BTF raw test[110] (invalid volatile kind_flag): OK # BTF raw test[111] (invalid const kind_flag): OK # BTF raw test[112] (invalid restrict kind_flag): OK # BTF raw test[113] (invalid func kind_flag): OK # BTF raw test[114] (invalid func_proto kind_flag): OK # BTF raw test[115] (valid struct, kind_flag, bitfield_size = 0): OK # BTF raw test[116] (valid struct, kind_flag, int member, bitfield_size != 0): OK # BTF raw test[117] (valid union, kind_flag, int member, bitfield_size != 0): OK # BTF raw test[118] (valid struct, kind_flag, enum member, bitfield_size != 0): OK # BTF raw test[119] (valid union, kind_flag, enum member, bitfield_size != 0): OK # BTF raw test[120] (valid struct, kind_flag, typedef member, bitfield_size != 0): OK # BTF raw test[121] (valid union, kind_flag, typedef member, bitfield_size != 0): OK # BTF raw test[122] (invalid struct, kind_flag, bitfield_size greater than struct size): OK # BTF raw test[123] (invalid struct, kind_flag, bitfield base_type int not regular): OK # BTF raw test[124] (invalid struct, kind_flag, base_type int not regular): OK # BTF raw test[125] (invalid union, kind_flag, bitfield_size greater than struct size): OK # BTF raw test[126] (invalid struct, kind_flag, int member, bitfield_size = 0, wrong byte alignment): OK # BTF raw test[127] (invalid struct, kind_flag, enum member, bitfield_size = 0, wrong byte alignment): OK # BTF raw test[128] (128-bit int): OK # BTF raw test[129] (struct, 128-bit int member): OK # BTF raw test[130] (struct, 120-bit int member bitfield): OK # BTF raw test[131] (struct, kind_flag, 128-bit int member): OK # BTF raw test[132] (struct, kind_flag, 120-bit int member bitfield): OK # BTF GET_INFO test[1] (== raw_btf_size+1): OK # BTF GET_INFO test[2] (== raw_btf_size-3): 38...39...40...OK # BTF GET_INFO test[3] (Large bpf_btf_info): OK # BTF GET_INFO test[4] (BTF ID): OK # BTF libbpf test[1] (test_btf_haskv.o): SKIP. No ELF .BTF found # BTF libbpf test[2] (test_btf_newkv.o): SKIP. No ELF .BTF found # BTF libbpf test[3] (test_btf_nokv.o): SKIP. No ELF .BTF found # BTF prog info raw test[1] (func_type (main func + one sub)): OK # BTF prog info raw test[2] (func_type (Incorrect func_info_rec_size)): OK # BTF prog info raw test[3] (func_type (Incorrect func_info_cnt)): OK # BTF prog info raw test[4] (func_type (Incorrect bpf_func_info.insn_off)): OK # BTF prog info raw test[5] (line_info (No subprog)): OK # BTF prog info raw test[6] (line_info (No subprog. insn_off >= prog->len)): OK # BTF prog info raw test[7] (line_info (Zero bpf insn code)): OK # BTF prog info raw test[8] (line_info (No subprog. zero tailing line_info): OK # BTF prog info raw test[9] (line_info (No subprog. nonzero tailing line_info)): OK # BTF prog info raw test[10] (line_info (subprog)): OK # BTF prog info raw test[11] (line_info (subprog + func_info)): OK # BTF prog info raw test[12] (line_info (subprog. missing 1st func line info)): OK # BTF prog info raw test[13] (line_info (subprog. missing 2nd func line info)): OK # BTF prog info raw test[14] (line_info (subprog. unordered insn offset)): OK # BTF prog info raw test[15] (line_info (dead start)): OK # BTF prog info raw test[16] (line_info (dead end)): OK # BTF prog info raw test[17] (line_info (dead code + subprog + func_info)): OK # BTF prog info raw test[18] (line_info (dead subprog)): OK # BTF prog info raw test[19] (line_info (dead last subprog)): OK # BTF prog info raw test[20] (line_info (dead subprog + dead start)): OK # BTF prog info raw test[21] (line_info (dead subprog + dead start w/ move)): OK # BTF prog info raw test[22] (line_info (dead end + subprog start w/ no linfo)): OK # BTF dedup test[1] (dedup: unused strings filtering):OK # BTF dedup test[2] (dedup: strings deduplication):OK # BTF dedup test[3] (dedup: struct example #1):OK # BTF dedup test[4] (dedup: struct <-> fwd resolution w/ hash collision):OK # BTF dedup test[5] (dedup: void equiv check):OK # BTF dedup test[6] (dedup: all possible kinds (no duplicates)):OK # BTF dedup test[7] (dedup: no int duplicates):OK # BTF dedup test[8] (dedup: enum fwd resolution):OK # BTF dedup test[9] (dedup: datasec and vars pass-through):OK # PASS:167 SKIP:3 FAIL:0 ok 12 selftests: bpf: test_btf # selftests: bpf: test_sockmap # libbpf: BTF is required, but is missing or corrupted. # ERROR: (-1) load bpf failed # Unable to load eBPF objects in file 'test_sockmap_kern.o' : No such file or directory not ok 13 selftests: bpf: test_sockmap # selftests: bpf: get_cgroup_id_user # libbpf: BTF is required, but is missing or corrupted. # main:PASS:setup_cgroup_environment # main:PASS:create_and_get_cgroup # main:PASS:join_cgroup # main:FAIL:bpf_prog_load err -2 errno 2 not ok 14 selftests: bpf: get_cgroup_id_user # selftests: bpf: test_socket_cookie # libbpf: BTF is required, but is missing or corrupted. # (test_socket_cookie.c:155: errno: No such file or directory) Failed to load ./socket_cookie_prog.o # FAILED not ok 15 selftests: bpf: test_socket_cookie # selftests: bpf: test_cgroup_storage # test_cgroup_storage:PASS ok 16 selftests: bpf: test_cgroup_storage # selftests: bpf: test_select_reuseport # libbpf: BTF is required, but is missing or corrupted. # prepare_bpf_obj(97):FAIL:open test_select_reuseport_kern.o obj:0xfffffffffffffffe PTR_ERR(obj):-2 not ok 17 selftests: bpf: test_select_reuseport # selftests: bpf: test_section_names # libbpf: failed to guess program type based on ELF section name 'InvAliD' # libbpf: supported section(type) names are: socket kprobe/ kretprobe/ classifier action tracepoint/ raw_tracepoint/ xdp perf_event lwt_in lwt_out lwt_xmit lwt_seg6local cgroup_skb/ingress cgroup_skb/egress cgroup/skb cgroup/sock cgroup/post_bind4 cgroup/post_bind6 cgroup/dev sockops sk_skb/stream_parser sk_skb/stream_verdict sk_skb sk_msg lirc_mode2 flow_dissector cgroup/bind4 cgroup/bind6 cgroup/connect4 cgroup/connect6 cgroup/sendmsg4 cgroup/sendmsg6 cgroup/sysctl # libbpf: failed to guess attach type based on ELF section name 'InvAliD' # libbpf: attachable section(type) names are: cgroup_skb/ingress cgroup_skb/egress cgroup/sock cgroup/post_bind4 cgroup/post_bind6 cgroup/dev sockops sk_skb/stream_parser sk_skb/stream_verdict sk_msg lirc_mode2 flow_dissector cgroup/bind4 cgroup/bind6 cgroup/connect4 cgroup/connect6 cgroup/sendmsg4 cgroup/sendmsg6 cgroup/sysctl # libbpf: failed to guess program type based on ELF section name 'cgroup' # libbpf: supported section(type) names are: socket kprobe/ kretprobe/ classifier action tracepoint/ raw_tracepoint/ xdp perf_event lwt_in lwt_out lwt_xmit lwt_seg6local cgroup_skb/ingress cgroup_skb/egress cgroup/skb cgroup/sock cgroup/post_bind4 cgroup/post_bind6 cgroup/dev sockops sk_skb/stream_parser sk_skb/stream_verdict sk_skb sk_msg lirc_mode2 flow_dissector cgroup/bind4 cgroup/bind6 cgroup/connect4 cgroup/connect6 cgroup/sendmsg4 cgroup/sendmsg6 cgroup/sysctl # libbpf: failed to guess attach type based on ELF section name 'cgroup' # libbpf: attachable section(type) names are: cgroup_skb/ingress cgroup_skb/egress cgroup/sock cgroup/post_bind4 cgroup/post_bind6 cgroup/dev sockops sk_skb/stream_parser sk_skb/stream_verdict sk_msg lirc_mode2 flow_dissector cgroup/bind4 cgroup/bind6 cgroup/connect4 cgroup/connect6 cgroup/sendmsg4 cgroup/sendmsg6 cgroup/sysctl # Summary: 36 PASSED, 0 FAILED ok 18 selftests: bpf: test_section_names # selftests: bpf: test_netcnt # libbpf: BTF is required, but is missing or corrupted. # Failed to load bpf program not ok 19 selftests: bpf: test_netcnt # selftests: bpf: test_tcpnotify_user # libbpf: BTF is required, but is missing or corrupted. # FAILED: load_bpf_file failed for: test_tcpnotify_kern.o not ok 20 selftests: bpf: test_tcpnotify_user # selftests: bpf: test_sock_fields # libbpf: BTF is required, but is missing or corrupted. # main(439):FAIL:bpf_prog_load_xattr() err:-2 not ok 21 selftests: bpf: test_sock_fields # selftests: bpf: test_sysctl # Test case: sysctl wrong attach_type .. [PASS] # Test case: sysctl:read allow all .. [PASS] # Test case: sysctl:read deny all .. [PASS] # Test case: ctx:write sysctl:read read ok .. [PASS] # Test case: ctx:write sysctl:write read ok .. [PASS] # Test case: ctx:write sysctl:read write reject .. [PASS] # Test case: ctx:file_pos sysctl:read read ok .. [PASS] # Test case: ctx:file_pos sysctl:read read ok narrow .. [PASS] # Test case: ctx:file_pos sysctl:read write ok .. [PASS] # Test case: sysctl_get_name sysctl_value:base ok .. [PASS] # Test case: sysctl_get_name sysctl_value:base E2BIG truncated .. [PASS] # Test case: sysctl_get_name sysctl:full ok .. [PASS] # Test case: sysctl_get_name sysctl:full E2BIG truncated .. [PASS] # Test case: sysctl_get_name sysctl:full E2BIG truncated small .. [PASS] # Test case: sysctl_get_current_value sysctl:read ok, gt .. [PASS] # Test case: sysctl_get_current_value sysctl:read ok, eq .. [PASS] # Test case: sysctl_get_current_value sysctl:read E2BIG truncated .. [PASS] # Test case: sysctl_get_current_value sysctl:read EINVAL .. [PASS] # Test case: sysctl_get_current_value sysctl:write ok .. [PASS] # Test case: sysctl_get_new_value sysctl:read EINVAL .. [PASS] # Test case: sysctl_get_new_value sysctl:write ok .. [PASS] # Test case: sysctl_get_new_value sysctl:write ok long .. [PASS] # Test case: sysctl_get_new_value sysctl:write E2BIG .. [PASS] # Test case: sysctl_set_new_value sysctl:read EINVAL .. [PASS] # Test case: sysctl_set_new_value sysctl:write ok .. [PASS] # Test case: bpf_strtoul one number string .. [PASS] # Test case: bpf_strtoul multi number string .. [PASS] # Test case: bpf_strtoul buf_len = 0, reject .. [PASS] # Test case: bpf_strtoul supported base, ok .. [PASS] # Test case: bpf_strtoul unsupported base, EINVAL .. [PASS] # Test case: bpf_strtoul buf with spaces only, EINVAL .. [PASS] # Test case: bpf_strtoul negative number, EINVAL .. [PASS] # Test case: bpf_strtol negative number, ok .. [PASS] # Test case: bpf_strtol hex number, ok .. [PASS] # Test case: bpf_strtol max long .. [PASS] # Test case: bpf_strtol overflow, ERANGE .. [PASS] # Test case: C prog: deny all writes .. [PASS] # Test case: C prog: deny access by name .. [PASS] # Test case: C prog: read tcp_mem .. [PASS] # Summary: 39 PASSED, 0 FAILED ok 22 selftests: bpf: test_sysctl # selftests: bpf: test_hashmap # test_hashmap_generic: OK # test_hashmap_multimap: OK # test_hashmap_empty: OK ok 23 selftests: bpf: test_hashmap # selftests: bpf: test_btf_dump # Test case #0 (btf_dump_test_case_syntax): test_btf_dump_case:71:FAIL failed to load test BTF: -2 # Test case #1 (btf_dump_test_case_ordering): test_btf_dump_case:71:FAIL failed to load test BTF: -2 # Test case #2 (btf_dump_test_case_padding): test_btf_dump_case:71:FAIL failed to load test BTF: -2 # Test case #3 (btf_dump_test_case_packing): test_btf_dump_case:71:FAIL failed to load test BTF: -2 # Test case #4 (btf_dump_test_case_bitfields): test_btf_dump_case:71:FAIL failed to load test BTF: -2 # Test case #5 (btf_dump_test_case_multidim): test_btf_dump_case:71:FAIL failed to load test BTF: -2 # Test case #6 (btf_dump_test_case_namespacing): test_btf_dump_case:71:FAIL failed to load test BTF: -2 # 0 tests succeeded, 7 tests failed. not ok 24 selftests: bpf: test_btf_dump # selftests: bpf: test_cgroup_attach # #override:PASS # #multi:PASS # #autodetach:PASS # test_cgroup_attach:PASS ok 25 selftests: bpf: test_cgroup_attach # selftests: bpf: xdping # usage: xdping [OPTS] -I interface destination # # OPTS: # -c count Stop after sending count requests # (default 4, max 10) # -I interface interface name # -N Run in driver mode # -s Server mode # -S Run in skb mode not ok 26 selftests: bpf: xdping # selftests: bpf: urandom_read ok 27 selftests: bpf: urandom_read # selftests: bpf: test_kmod.sh # sysctl: setting key "net.core.bpf_jit_enable": Invalid argument # [ JIT enabled:0 hardened:0 ] # [ 198.602657] test_bpf: Summary: 378 PASSED, 0 FAILED, [365/365 JIT'ed] # [ JIT enabled:1 hardened:0 ] # [ 199.877714] test_bpf: Summary: 378 PASSED, 0 FAILED, [365/365 JIT'ed] # [ JIT enabled:1 hardened:1 ] # [ 201.109700] test_bpf: Summary: 378 PASSED, 0 FAILED, [365/365 JIT'ed] # [ JIT enabled:1 hardened:2 ] # [ 209.669921] test_bpf: Summary: 378 PASSED, 0 FAILED, [365/365 JIT'ed] ok 28 selftests: bpf: test_kmod.sh # selftests: bpf: test_libbpf.sh # [0] libbpf: BTF is required, but is missing or corrupted. # test_libbpf: failed at file test_l4lb.o # selftests: test_libbpf [FAILED] not ok 29 selftests: bpf: test_libbpf.sh # selftests: bpf: test_xdp_redirect.sh # PING 10.1.1.22 (10.1.1.22) 56(84) bytes of data. # 64 bytes from 10.1.1.22: icmp_seq=1 ttl=64 time=0.065 ms # # --- 10.1.1.22 ping statistics --- # 1 packets transmitted, 1 received, 0% packet loss, time 0ms # rtt min/avg/max/mdev = 0.065/0.065/0.065/0.000 ms # PING 10.1.1.11 (10.1.1.11) 56(84) bytes of data. # 64 bytes from 10.1.1.11: icmp_seq=1 ttl=64 time=0.018 ms # # --- 10.1.1.11 ping statistics --- # 1 packets transmitted, 1 received, 0% packet loss, time 0ms # rtt min/avg/max/mdev = 0.018/0.018/0.018/0.000 ms # selftests: test_xdp_redirect [PASS] ok 30 selftests: bpf: test_xdp_redirect.sh # selftests: bpf: test_xdp_meta.sh # PING 10.1.1.22 (10.1.1.22) 56(84) bytes of data. # 64 bytes from 10.1.1.22: icmp_seq=1 ttl=64 time=0.051 ms # # --- 10.1.1.22 ping statistics --- # 1 packets transmitted, 1 received, 0% packet loss, time 0ms # rtt min/avg/max/mdev = 0.051/0.051/0.051/0.000 ms # PING 10.1.1.11 (10.1.1.11) 56(84) bytes of data. # 64 bytes from 10.1.1.11: icmp_seq=1 ttl=64 time=0.022 ms # # --- 10.1.1.11 ping statistics --- # 1 packets transmitted, 1 received, 0% packet loss, time 0ms # rtt min/avg/max/mdev = 0.022/0.022/0.022/0.000 ms # selftests: test_xdp_meta [PASS] ok 31 selftests: bpf: test_xdp_meta.sh # selftests: bpf: test_offload.py # Test destruction of generic XDP... # Test TC non-offloaded... # Test TC non-offloaded isn't getting bound... # Test TC offloads are off by default... # Test TC offload by default... # Test TC cBPF bytcode tries offload by default... # Test TC cBPF unbound bytecode doesn't offload... # Test non-0 chain offload... # Test TC replace... # Test TC replace bad flags... # Test spurious extack from the driver... # Test TC offloads work... # Test TC offload basics... # Test TC offload is device-bound... # Test disabling TC offloads is rejected while filters installed... # Test qdisc removal frees things... # Test disabling TC offloads is OK without filters... # Test destroying device gets rid of TC filters... # Test destroying device gets rid of XDP... # Test XDP prog reporting... # Test XDP prog replace without force... # Test XDP prog replace with force... # Test XDP prog replace with bad flags... # Test XDP prog remove with bad flags... # Test MTU restrictions... # Test non-offload XDP attaching to HW... # Test offload XDP attaching to drv... # Test XDP offload... # Test XDP offload is device bound... # Test removing XDP program many times... # Test attempt to use a program for a wrong device... # Test multi-attachment XDP - default + offload... # Test multi-attachment XDP - replace... # Test multi-attachment XDP - detach... # Test multi-attachment XDP - reattach... # Test multi-attachment XDP - device remove... # Test multi-attachment XDP - drv + offload... # Test multi-attachment XDP - replace... # Test multi-attachment XDP - detach... # Test multi-attachment XDP - reattach... # Test multi-attachment XDP - device remove... # Test multi-attachment XDP - generic + offload... # Test multi-attachment XDP - replace... # Test multi-attachment XDP - reattach... # Test multi-attachment XDP - device remove... # Test mixing of TC and XDP... # Test binding TC from pinned... # Test binding XDP from pinned... # Test offload of wrong type fails... # Test asking for TC offload of two filters... # Test if netdev removal waits for translation... # Test loading program with maps... # Traceback (most recent call last): # File "./test_offload.py", line 1153, in # sim.set_xdp(map_obj, "offload", JSON=False) # map fixup msg breaks JSON # File "./test_offload.py", line 469, in set_xdp # fail=fail, include_stderr=include_stderr) # File "./test_offload.py", line 230, in ip # fail=fail, include_stderr=include_stderr) # File "./test_offload.py", line 155, in tool # fail=fail, include_stderr=False) # File "./test_offload.py", line 108, in cmd # return cmd_result(proc, include_stderr=include_stderr, fail=fail) # File "./test_offload.py", line 130, in cmd_result # raise Exception("Command failed: %s\n%s" % (proc.args, stderr)) # Exception: Command failed: ip link set dev eth1 xdpoffload obj /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf/sample_map_ret0.o sec .text # # # Prog section '.text' rejected: Permission denied (13)! # - Type: 6 # - Instructions: 21 (0 over limit) # - License: # # Verifier analysis: # # 0: (b7) r1 = 0 # 1: (7b) *(u64 *)(r10 -8) = r1 # 2: (63) *(u32 *)(r10 -12) = r1 # 3: (bf) r2 = r10 # 4: (07) r2 += -12 # 5: (18) r1 = 0x0 # 7: (85) call bpf_map_lookup_elem#1 # R1 type=inv expected=map_ptr # processed 7 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0 # # Error fetching program/map! not ok 32 selftests: bpf: test_offload.py # selftests: bpf: test_sock_addr.sh # Wait for testing IPv4/IPv6 to become available ... OK # libbpf: load bpf program failed: Permission denied # libbpf: -- BEGIN DUMP LOG --- # libbpf: # 0: (bf) r6 = r1 # 1: (b7) r7 = 0 # 2: (63) *(u32 *)(r10 -8) = r7 # 3: (63) *(u32 *)(r10 -12) = r7 # 4: (63) *(u32 *)(r10 -16) = r7 # 5: (63) *(u32 *)(r10 -20) = r7 # 6: (63) *(u32 *)(r10 -24) = r7 # 7: (63) *(u32 *)(r10 -28) = r7 # 8: (18) r1 = 0x100007f00000000 # 10: (7b) *(u64 *)(r10 -40) = r1 # 11: (b7) r1 = 1544617984 # 12: (63) *(u32 *)(r10 -32) = r1 # 13: (61) r1 = *(u32 *)(r6 +32) # 14: (bf) r2 = r1 # 15: (07) r2 += -1 # 16: (67) r2 <<= 32 # 17: (77) r2 >>= 32 # 18: (25) if r2 > 0x1 goto pc+24 # R1=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R2=inv(id=0,umax_value=1,var_off=(0x0; 0x1)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????0000 fp-16=00000000 fp-24=00000000 fp-32=0000mmmm fp-40=mmmmmmmm # 19: (55) if r1 != 0x1 goto pc+8 # R1=inv1 R2=inv(id=0,umax_value=1,var_off=(0x0; 0x1)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????0000 fp-16=00000000 fp-24=00000000 fp-32=0000mmmm fp-40=mmmmmmmm # 20: (bf) r2 = r10 # 21: (07) r2 += -40 # 22: (bf) r1 = r6 # 23: (b7) r3 = 12 # 24: (b7) r4 = -1 # 25: (b7) r5 = 0 # 26: (85) call bpf_sk_lookup_tcp#84 # 27: (05) goto pc+7 # 35: (15) if r0 == 0x0 goto pc+7 # R0=sock(id=0,ref_obj_id=2,off=0,imm=0) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????0000 fp-16=00000000 fp-24=00000000 fp-32=0000mmmm fp-40=mmmmmmmm refs=2 # 36: (61) r1 = *(u32 *)(r0 +24) # 37: (61) r2 = *(u32 *)(r10 -36) # 38: (5d) if r1 != r2 goto pc+2 # R0=sock(id=0,ref_obj_id=2,off=0,imm=0) R1=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R2=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????0000 fp-16=00000000 fp-24=00000000 fp-32=0000mmmm fp-40=mmmmmmmm refs=2 # 39: (61) r1 = *(u32 *)(r0 +44) # 40: (15) if r1 == 0x115c goto pc+4 # R0=sock(id=0,ref_obj_id=2,off=0,imm=0) R1=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R2=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????0000 fp-16=00000000 fp-24=00000000 fp-32=0000mmmm fp-40=mmmmmmmm refs=2 # 41: (bf) r1 = r0 # 42: (85) call bpf_sk_release#86 # 43: (bf) r0 = r7 # 44: (95) exit # # from 40 to 45: R0=sock(id=0,ref_obj_id=2,off=0,imm=0) R1=inv4444 R2=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????0000 fp-16=00000000 fp-24=00000000 fp-32=0000mmmm fp-40=mmmmmmmm refs=2 # 45: (bf) r1 = r0 # 46: (85) call bpf_sk_release#86 # 47: (b7) r1 = 23569 # 48: (63) *(u32 *)(r6 +24) = r1 # 49: (b7) r1 = 16777343 # 50: (63) *(u32 *)(r6 +4) = r1 # invalid bpf_context access off=4 size=4 # processed 43 insns (limit 1000000) max_states_per_insn 0 total_states 10 peak_states 10 mark_read 8 # # libbpf: -- END LOG -- # libbpf: failed to load program 'cgroup/connect4' # libbpf: failed to load object './connect4_prog.o' # libbpf: load bpf program failed: Permission denied # libbpf: -- BEGIN DUMP LOG --- # libbpf: # 0: (bf) r6 = r1 # 1: (b7) r1 = 169476096 # 2: (63) *(u32 *)(r10 -8) = r1 # 3: (18) r1 = 0x100000000000000 # 5: (7b) *(u64 *)(r10 -16) = r1 # 6: (b7) r7 = 0 # 7: (7b) *(u64 *)(r10 -24) = r7 # 8: (7b) *(u64 *)(r10 -32) = r7 # 9: (7b) *(u64 *)(r10 -40) = r7 # 10: (61) r1 = *(u32 *)(r6 +32) # 11: (bf) r2 = r1 # 12: (07) r2 += -1 # 13: (67) r2 <<= 32 # 14: (77) r2 >>= 32 # 15: (25) if r2 > 0x1 goto pc+33 # R1=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R2=inv(id=0,umax_value=1,var_off=(0x0; 0x1)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????mmmm fp-16=mmmmmmmm fp-24=00000000 fp-32=00000000 fp-40=00000000 # 16: (55) if r1 != 0x1 goto pc+8 # R1=inv1 R2=inv(id=0,umax_value=1,var_off=(0x0; 0x1)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????mmmm fp-16=mmmmmmmm fp-24=00000000 fp-32=00000000 fp-40=00000000 # 17: (bf) r2 = r10 # 18: (07) r2 += -40 # 19: (bf) r1 = r6 # 20: (b7) r3 = 36 # 21: (b7) r4 = -1 # 22: (b7) r5 = 0 # 23: (85) call bpf_sk_lookup_tcp#84 # 24: (05) goto pc+7 # 32: (15) if r0 == 0x0 goto pc+16 # R0=sock(id=0,ref_obj_id=2,off=0,imm=0) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????mmmm fp-16=mmmmmmmm fp-24=mmmmmmmm fp-32=mmmmmmmm fp-40=mmmmmmmm refs=2 # 33: (61) r1 = *(u32 *)(r0 +28) # 34: (61) r2 = *(u32 *)(r10 -24) # 35: (5d) if r1 != r2 goto pc+11 # R0=sock(id=0,ref_obj_id=2,off=0,imm=0) R1=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R2=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????mmmm fp-16=mmmmmmmm fp-24=mmmmmmmm fp-32=mmmmmmmm fp-40=mmmmmmmm refs=2 # 36: (61) r1 = *(u32 *)(r0 +32) # 37: (61) r2 = *(u32 *)(r10 -20) # 38: (5d) if r1 != r2 goto pc+8 # R0=sock(id=0,ref_obj_id=2,off=0,imm=0) R1=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R2=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????mmmm fp-16=mmmmmmmm fp-24=mmmmmmmm fp-32=mmmmmmmm fp-40=mmmmmmmm refs=2 # 39: (61) r1 = *(u32 *)(r0 +36) # 40: (61) r2 = *(u32 *)(r10 -16) # 41: (5d) if r1 != r2 goto pc+5 # R0=sock(id=0,ref_obj_id=2,off=0,imm=0) R1=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R2=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????mmmm fp-16=mmmmmmmm fp-24=mmmmmmmm fp-32=mmmmmmmm fp-40=mmmmmmmm refs=2 # 42: (61) r1 = *(u32 *)(r0 +40) # 43: (61) r2 = *(u32 *)(r10 -12) # 44: (5d) if r1 != r2 goto pc+2 # R0=sock(id=0,ref_obj_id=2,off=0,imm=0) R1=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R2=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????mmmm fp-16=mmmmmmmm fp-24=mmmmmmmm fp-32=mmmmmmmm fp-40=mmmmmmmm refs=2 # 45: (61) r1 = *(u32 *)(r0 +44) # 46: (15) if r1 == 0x1a0a goto pc+4 # R0=sock(id=0,ref_obj_id=2,off=0,imm=0) R1=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R2=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????mmmm fp-16=mmmmmmmm fp-24=mmmmmmmm fp-32=mmmmmmmm fp-40=mmmmmmmm refs=2 # 47: (bf) r1 = r0 # 48: (85) call bpf_sk_release#86 # 49: (bf) r0 = r7 # 50: (95) exit # # from 46 to 51: R0=sock(id=0,ref_obj_id=2,off=0,imm=0) R1=inv6666 R2=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0,call_-1 fp-8=????mmmm fp-16=mmmmmmmm fp-24=mmmmmmmm fp-32=mmmmmmmm fp-40=mmmmmmmm refs=2 # 51: (bf) r1 = r0 # 52: (85) call bpf_sk_release#86 # 53: (b7) r1 = 16777216 # 54: (63) *(u32 *)(r6 +20) = r1 # invalid bpf_context access off=20 size=4 # processed 47 insns (limit 1000000) max_states_per_insn 0 total_states 13 peak_states 13 mark_read 11 # # libbpf: -- END LOG -- # libbpf: failed to load program 'cgroup/connect6' # libbpf: failed to load object './connect6_prog.o' # (test_sock_addr.c:1122: errno: Operation not permitted) Fail to send message to server # (test_sock_addr.c:1122: errno: Unknown error 524) Fail to send message to server # (test_sock_addr.c:1122: errno: Operation not permitted) Fail to send message to server # Test case: bind4: load prog with wrong expected attach type .. [PASS] # Test case: bind4: attach prog with wrong attach type .. [PASS] # Test case: bind4: rewrite IP & TCP port in .. [PASS] # Test case: bind4: rewrite IP & UDP port in .. [PASS] # Test case: bind6: load prog with wrong expected attach type .. [PASS] # Test case: bind6: attach prog with wrong attach type .. [PASS] # Test case: bind6: rewrite IP & TCP port in .. [PASS] # Test case: bind6: rewrite IP & UDP port in .. [PASS] # Test case: connect4: load prog with wrong expected attach type .. [PASS] # Test case: connect4: attach prog with wrong attach type .. [PASS] # Test case: connect4: rewrite IP & TCP port .. [PASS] # Test case: connect4: rewrite IP & UDP port .. [PASS] # Test case: connect6: load prog with wrong expected attach type .. [PASS] # Test case: connect6: attach prog with wrong attach type .. [PASS] # Test case: connect6: rewrite IP & TCP port .. [PASS] # Test case: connect6: rewrite IP & UDP port .. [PASS] # Test case: sendmsg4: load prog with wrong expected attach type .. [PASS] # Test case: sendmsg4: attach prog with wrong attach type .. [PASS] # Test case: sendmsg4: rewrite IP & port (asm) .. [PASS] # Test case: sendmsg4: rewrite IP & port (C) .. [PASS] # Test case: sendmsg4: deny call .. [PASS] # Test case: sendmsg6: load prog with wrong expected attach type .. [PASS] # Test case: sendmsg6: attach prog with wrong attach type .. [PASS] # Test case: sendmsg6: rewrite IP & port (asm) .. [PASS] # Test case: sendmsg6: rewrite IP & port (C) .. [PASS] # Test case: sendmsg6: IPv4-mapped IPv6 .. [PASS] # Test case: sendmsg6: set dst IP = [::] (BSD'ism) .. [PASS] # Test case: sendmsg6: preserve dst IP = [::] (BSD'ism) .. [PASS] # Test case: sendmsg6: deny call .. [PASS] # Summary: 29 PASSED, 0 FAILED ok 33 selftests: bpf: test_sock_addr.sh # selftests: bpf: test_tunnel.sh # Testing GRE tunnel... # PING 10.1.1.100 (10.1.1.100) 56(84) bytes of data. # # --- 10.1.1.100 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2087ms # rtt min/avg/max/mdev = 0.074/0.096/0.141/0.033 ms # PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data. # # --- 10.1.1.200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2079ms # rtt min/avg/max/mdev = 0.069/0.073/0.080/0.005 ms # PASS: gretap # Testing IP6GRE tunnel... # PING ::11(::11) 56 data bytes # # --- ::11 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2053ms # rtt min/avg/max/mdev = 0.145/1026.146/2054.115/838.531 ms, pipe 3 # PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data. # # --- 10.1.1.200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2081ms # rtt min/avg/max/mdev = 0.094/0.095/0.099/0.011 ms # PING 10.1.1.100 (10.1.1.100) 56(84) bytes of data. # # --- 10.1.1.100 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2044ms # rtt min/avg/max/mdev = 0.043/0.076/0.096/0.024 ms # PING fc80::200(fc80::200) 56 data bytes # # --- fc80::200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2042ms # rtt min/avg/max/mdev = 0.060/0.091/0.120/0.025 ms # PASS: ip6gre # Testing IP6GRETAP tunnel... # PING ::11(::11) 56 data bytes # # --- ::11 ping statistics --- # 5 packets transmitted, 3 received, 40% packet loss, time 4108ms # rtt min/avg/max/mdev = 0.058/0.060/0.061/0.001 ms # PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data. # # --- 10.1.1.200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2082ms # rtt min/avg/max/mdev = 0.085/0.118/0.171/0.037 ms # PING 10.1.1.100 (10.1.1.100) 56(84) bytes of data. # # --- 10.1.1.100 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2040ms # rtt min/avg/max/mdev = 0.040/0.072/0.088/0.022 ms # PING fc80::200(fc80::200) 56 data bytes # # --- fc80::200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2043ms # rtt min/avg/max/mdev = 0.095/0.110/0.140/0.024 ms # PASS: ip6gretap # Testing ERSPAN tunnel... # PING 10.1.1.100 (10.1.1.100) 56(84) bytes of data. # # --- 10.1.1.100 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2071ms # rtt min/avg/max/mdev = 0.075/0.085/0.106/0.016 ms # PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data. # # --- 10.1.1.200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2044ms # rtt min/avg/max/mdev = 0.041/0.069/0.084/0.021 ms # PASS: erspan # Testing IP6ERSPAN tunnel... # PING ::11(::11) 56 data bytes # # --- ::11 ping statistics --- # 5 packets transmitted, 3 received, 40% packet loss, time 4092ms # rtt min/avg/max/mdev = 0.058/0.061/0.068/0.010 ms # PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data. # # --- 10.1.1.200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2042ms # rtt min/avg/max/mdev = 0.094/0.098/0.103/0.008 ms # PASS: ip6erspan # Testing VXLAN tunnel... # PING 10.1.1.100 (10.1.1.100) 56(84) bytes of data. # # --- 10.1.1.100 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2036ms # rtt min/avg/max/mdev = 0.070/0.074/0.077/0.007 ms # PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data. # # --- 10.1.1.200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2032ms # rtt min/avg/max/mdev = 0.073/0.082/0.087/0.006 ms # PASS: vxlan # Testing IP6VXLAN tunnel... # PING ::11(::11) 56 data bytes # # --- ::11 ping statistics --- # 5 packets transmitted, 3 received, 40% packet loss, time 4091ms # rtt min/avg/max/mdev = 0.064/0.074/0.088/0.012 ms # PING 10.1.1.100 (10.1.1.100) 56(84) bytes of data. # # --- 10.1.1.100 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2043ms # rtt min/avg/max/mdev = 0.074/0.097/0.125/0.022 ms # PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data. # # --- 10.1.1.200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2043ms # rtt min/avg/max/mdev = 0.075/0.094/0.104/0.013 ms # PASS: ip6vxlan # Testing GENEVE tunnel... # PING 10.1.1.100 (10.1.1.100) 56(84) bytes of data. # # --- 10.1.1.100 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2088ms # rtt min/avg/max/mdev = 0.032/0.067/0.099/0.029 ms # PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data. # # --- 10.1.1.200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2042ms # rtt min/avg/max/mdev = 0.042/0.072/0.093/0.024 ms # PASS: geneve # Testing IP6GENEVE tunnel... # PING 10.1.1.100 (10.1.1.100) 56(84) bytes of data. # # --- 10.1.1.100 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2040ms # rtt min/avg/max/mdev = 0.023/1021.563/2040.589/833.059 ms, pipe 2 # PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data. # # --- 10.1.1.200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2036ms # rtt min/avg/max/mdev = 0.082/0.084/0.088/0.008 ms # PASS: ip6geneve # Testing IPIP tunnel... # PING 10.1.1.100 (10.1.1.100) 56(84) bytes of data. # # --- 10.1.1.100 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2076ms # rtt min/avg/max/mdev = 0.073/0.083/0.088/0.007 ms # PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data. # # --- 10.1.1.200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2043ms # rtt min/avg/max/mdev = 0.033/0.064/0.081/0.024 ms # PASS: ipip # Testing IPIP6 tunnel... # PING ::11(::11) 56 data bytes # # --- ::11 ping statistics --- # 5 packets transmitted, 3 received, 40% packet loss, time 4082ms # rtt min/avg/max/mdev = 0.059/0.071/0.095/0.018 ms # PING 10.1.1.100 (10.1.1.100) 56(84) bytes of data. # # --- 10.1.1.100 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2045ms # rtt min/avg/max/mdev = 0.068/0.077/0.084/0.012 ms # PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data. # # --- 10.1.1.200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2060ms # rtt min/avg/max/mdev = 0.095/0.105/0.119/0.015 ms # PASS: ip6tnl # Testing IPSec tunnel... # PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data. # # --- 10.1.1.200 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2057ms # rtt min/avg/max/mdev = 0.109/0.114/0.117/0.003 ms # ping-11855 [001] ..s4 285.068346: 0: reqid 1 spi 0x1 remote ip 0xac100164 # ping-11855 [001] ..s4 286.101882: 0: reqid 1 spi 0x1 remote ip 0xac100164 # ping-11855 [001] ..s4 287.125970: 0: reqid 1 spi 0x1 remote ip 0xac100164 # ping-11855 [001] ..s4 285.068346: 0: reqid 1 spi 0x1 remote ip 0xac100164 # ping-11855 [001] ..s4 286.101882: 0: reqid 1 spi 0x1 remote ip 0xac100164 # ping-11855 [001] ..s4 287.125970: 0: reqid 1 spi 0x1 remote ip 0xac100164 # ping-11855 [001] ..s4 285.068346: 0: reqid 1 spi 0x1 remote ip 0xac100164 # ping-11855 [001] ..s4 286.101882: 0: reqid 1 spi 0x1 remote ip 0xac100164 # ping-11855 [001] ..s4 287.125970: 0: reqid 1 spi 0x1 remote ip 0xac100164 # PASS: xfrm tunnel # test_tunnel.sh: PASS ok 34 selftests: bpf: test_tunnel.sh # selftests: bpf: test_lwt_seg6local.sh # Error fetching program/map! # Failed to parse eBPF program: Operation not permitted # selftests: test_lwt_seg6local [FAILED] not ok 35 selftests: bpf: test_lwt_seg6local.sh # selftests: bpf: test_lirc_mode2.sh # ./test_lirc_mode2.sh: line 31: ./test_lirc_mode2_user: No such file or directory # FAIL: lirc_mode2 ok 36 selftests: bpf: test_lirc_mode2.sh # selftests: bpf: test_skb_cgroup_id.sh # Wait for testing link-local IP to become available ... OK # # Prog section 'cgroup_id_logger' rejected: Permission denied (13)! # - Type: 3 # - Instructions: 59 (0 over limit) # - License: GPL # # Verifier analysis: # # 0: (bf) r6 = r1 # 1: (b7) r1 = 0 # 2: (63) *(u32 *)(r10 -4) = r1 # 3: (bf) r1 = r6 # 4: (b7) r2 = 0 # 5: (85) call bpf_skb_ancestor_cgroup_id#83 # 6: (7b) *(u64 *)(r10 -16) = r0 # 7: (bf) r2 = r10 # 8: (07) r2 += -4 # 9: (bf) r3 = r10 # 10: (07) r3 += -16 # 11: (18) r1 = 0x0 # 13: (b7) r4 = 0 # 14: (85) call bpf_map_update_elem#2 # R1 type=inv expected=map_ptr # processed 14 insns (limit 1000000) max_states_per_insn 0 total_states 1 peak_states 1 mark_read 1 # # Error fetching program/map! # Unable to load program not ok 37 selftests: bpf: test_skb_cgroup_id.sh # selftests: bpf: test_flow_dissector.sh # bpffs not mounted. Mounting... # libbpf: BTF is required, but is missing or corrupted. # ./flow_dissector_load: bpf_flow_load bpf_flow.o # selftests: test_flow_dissector [FAILED] not ok 38 selftests: bpf: test_flow_dissector.sh # selftests: bpf: test_xdp_vlan.sh # Cannot get device udp-fragmentation-offload settings: Operation not supported # Cannot get device udp-fragmentation-offload settings: Operation not supported # Cannot get device udp-fragmentation-offload settings: Operation not supported # Cannot get device udp-fragmentation-offload settings: Operation not supported # Cannot get device udp-fragmentation-offload settings: Operation not supported # Cannot get device udp-fragmentation-offload settings: Operation not supported # Cannot get device udp-fragmentation-offload settings: Operation not supported # Cannot get device udp-fragmentation-offload settings: Operation not supported # PING 100.64.41.1 (100.64.41.1) 56(84) bytes of data. # # --- 100.64.41.1 ping statistics --- # 1 packets transmitted, 0 received, 100% packet loss, time 0ms # # Okay ping fails # PING 100.64.41.1 (100.64.41.1) 56(84) bytes of data. # 64 bytes from 100.64.41.1: icmp_seq=1 ttl=64 time=0.736 ms # 64 bytes from 100.64.41.1: icmp_seq=2 ttl=64 time=0.063 ms # 64 bytes from 100.64.41.1: icmp_seq=3 ttl=64 time=0.064 ms # # --- 100.64.41.1 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2048ms # rtt min/avg/max/mdev = 0.063/0.287/0.736/0.317 ms # PING 100.64.41.2 (100.64.41.2) 56(84) bytes of data. # 64 bytes from 100.64.41.2: icmp_seq=1 ttl=64 time=0.052 ms # 64 bytes from 100.64.41.2: icmp_seq=2 ttl=64 time=0.065 ms # 64 bytes from 100.64.41.2: icmp_seq=3 ttl=64 time=0.066 ms # # --- 100.64.41.2 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2079ms # rtt min/avg/max/mdev = 0.052/0.061/0.066/0.006 ms # PING 100.64.41.1 (100.64.41.1) 56(84) bytes of data. # 64 bytes from 100.64.41.1: icmp_seq=1 ttl=64 time=0.040 ms # 64 bytes from 100.64.41.1: icmp_seq=2 ttl=64 time=0.063 ms # 64 bytes from 100.64.41.1: icmp_seq=3 ttl=64 time=0.067 ms # # --- 100.64.41.1 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2049ms # rtt min/avg/max/mdev = 0.040/0.056/0.067/0.014 ms # PING 100.64.41.2 (100.64.41.2) 56(84) bytes of data. # 64 bytes from 100.64.41.2: icmp_seq=1 ttl=64 time=0.032 ms # 64 bytes from 100.64.41.2: icmp_seq=2 ttl=64 time=0.065 ms # 64 bytes from 100.64.41.2: icmp_seq=3 ttl=64 time=0.068 ms # # --- 100.64.41.2 ping statistics --- # 3 packets transmitted, 3 received, 0% packet loss, time 2041ms # rtt min/avg/max/mdev = 0.032/0.055/0.068/0.016 ms # selftests: xdp_vlan [PASS] ok 39 selftests: bpf: test_xdp_vlan.sh # selftests: bpf: test_lwt_ip_encap.sh # starting egress IPv4 encap test # nc is not available: skipping TSO tests # nc is not available: skipping TSO tests # ping: sendmsg: No route to host # PASS # starting egress IPv6 encap test # nc is not available: skipping TSO tests # nc is not available: skipping TSO tests # ping: sendmsg: No route to host # PASS # starting ingress IPv4 encap test # PASS # starting ingress IPv6 encap test # PASS # starting egress IPv4 encap test vrf red # ping: sendmsg: No route to host # ping: sendmsg: No route to host # PASS # starting egress IPv6 encap test vrf red # ping: sendmsg: No route to host # ping: sendmsg: No route to host # PASS # starting ingress IPv4 encap test vrf red # PASS # starting ingress IPv6 encap test vrf red # PASS # passed tests: 8 # failed tests: 0 ok 40 selftests: bpf: test_lwt_ip_encap.sh # selftests: bpf: test_tcp_check_syncookie.sh # net.ipv4.tcp_syncookies = 2 # Wait for IP 127.0.0.1 to become available . OK # Wait for IP ::1 to become available . OK # Testing clsact... # Prog section 'clsact/check_syncookie' rejected: Permission denied (13)! # - Type: 3 # - Instructions: 110 (0 over limit) # - License: GPL # # Verifier analysis: # # 0: (61) r3 = *(u32 *)(r1 +80) # 1: (61) r2 = *(u32 *)(r1 +76) # 2: (b7) r4 = 0 # 3: (63) *(u32 *)(r10 -44) = r4 # 4: (b7) r4 = 1 # 5: (7b) *(u64 *)(r10 -56) = r4 # 6: (bf) r6 = r2 # 7: (07) r6 += 14 # 8: (2d) if r6 > r3 goto pc+99 # R1=ctx(id=0,off=0,imm=0) R2=pkt(id=0,off=0,r=14,imm=0) R3=pkt_end(id=0,off=0,imm=0) R4=inv1 R6=pkt(id=0,off=14,r=14,imm=0) R10=fp0,call_-1 fp-48=0000???? fp-56=mmmmmmmm # 9: (71) r5 = *(u8 *)(r2 +12) # 10: (71) r4 = *(u8 *)(r2 +13) # 11: (67) r4 <<= 8 # 12: (4f) r4 |= r5 # 13: (dc) r4 = be16 r4 # 14: (15) if r4 == 0x86dd goto pc+32 # R1=ctx(id=0,off=0,imm=0) R2=pkt(id=0,off=0,r=14,imm=0) R3=pkt_end(id=0,off=0,imm=0) R4=inv(id=0) R5=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) R6=pkt(id=0,off=14,r=14,imm=0) R10=fp0,call_-1 fp-48=0000???? fp-56=mmmmmmmm # 15: (55) if r4 != 0x800 goto pc+92 # R1=ctx(id=0,off=0,imm=0) R2=pkt(id=0,off=0,r=14,imm=0) R3=pkt_end(id=0,off=0,imm=0) R4=inv2048 R5=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) R6=pkt(id=0,off=14,r=14,imm=0) R10=fp0,call_-1 fp-48=0000???? fp-56=mmmmmmmm # 16: (bf) r7 = r2 # 17: (07) r7 += 34 # 18: (2d) if r7 > r3 goto pc+89 # R1=ctx(id=0,off=0,imm=0) R2=pkt(id=0,off=0,r=34,imm=0) R3=pkt_end(id=0,off=0,imm=0) R4=inv2048 R5=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) R6=pkt(id=0,off=14,r=34,imm=0) R7=pkt(id=0,off=34,r=34,imm=0) R10=fp0,call_-1 fp-48=0000???? fp-56=mmmmmmmm # 19: (bf) r4 = r2 # 20: (07) r4 += 54 # 21: (2d) if r4 > r3 goto pc+86 # R1=ctx(id=0,off=0,imm=0) R2=pkt(id=0,off=0,r=54,imm=0) R3=pkt_end(id=0,off=0,imm=0) R4=pkt(id=0,off=54,r=54,imm=0) R5=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) R6=pkt(id=0,off=14,r=54,imm=0) R7=pkt(id=0,off=34,r=54,imm=0) R10=fp0,call_-1 fp-48=0000???? fp-56=mmmmmmmm # 22: (71) r3 = *(u8 *)(r2 +14) # 23: (57) r3 &= 15 # 24: (55) if r3 != 0x5 goto pc+83 # R1=ctx(id=0,off=0,imm=0) R2=pkt(id=0,off=0,r=54,imm=0) R3=inv5 R4=pkt(id=0,off=54,r=54,imm=0) R5=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) R6=pkt(id=0,off=14,r=54,imm=0) R7=pkt(id=0,off=34,r=54,imm=0) R10=fp0,call_-1 fp-48=0000???? fp-56=mmmmmmmm # 25: (61) r3 = *(u32 *)(r2 +26) # 26: (63) *(u32 *)(r10 -40) = r3 # 27: (61) r3 = *(u32 *)(r2 +30) # 28: (63) *(u32 *)(r10 -36) = r3 # 29: (69) r3 = *(u16 *)(r2 +34) # 30: (6b) *(u16 *)(r10 -32) = r3 # 31: (69) r2 = *(u16 *)(r2 +36) # 32: (6b) *(u16 *)(r10 -30) = r2 # 33: (bf) r2 = r10 # 34: (07) r2 += -40 # 35: (b7) r3 = 12 # 36: (b7) r4 = -1 # 37: (b7) r5 = 0 # 38: (85) call bpf_skc_lookup_tcp#99 # 39: (bf) r8 = r0 # 40: (15) if r8 == 0x0 goto pc+67 # R0=sock_common(id=0,off=0,imm=0) R6=pkt(id=0,off=14,r=54,imm=0) R7=pkt(id=0,off=34,r=54,imm=0) R8=sock_common(id=0,off=0,imm=0) R10=fp0,call_-1 fp-32=????mmmm fp-40=mmmmmmmm fp-48=0000???? fp-56=mmmmmmmm refs=2 # 41: (61) r1 = *(u32 *)(r8 +72) # 42: (55) if r1 != 0xa goto pc+63 # R0=sock_common(id=0,off=0,imm=0) R1=inv10 R6=pkt(id=0,off=14,r=54,imm=0) R7=pkt(id=0,off=34,r=54,imm=0) R8=sock_common(id=0,off=0,imm=0) R10=fp0,call_-1 fp-32=????mmmm fp-40=mmmmmmmm fp-48=0000???? fp-56=mmmmmmmm refs=2 # 43: (bf) r1 = r8 # 44: (bf) r2 = r6 # 45: (b7) r3 = 20 # 46: (05) goto pc+45 # 92: (bf) r4 = r7 # 93: (b7) r5 = 20 # 94: (85) call bpf_tcp_check_syncookie#100 # 95: (67) r0 <<= 32 # 96: (77) r0 >>= 32 # 97: (55) if r0 != 0x0 goto pc+8 # R0=inv0 R6=pkt(id=0,off=14,r=54,imm=0) R7=pkt(id=0,off=34,r=54,imm=0) R8=sock_common(id=0,off=0,imm=0) R10=fp0,call_-1 fp-32=????mmmm fp-40=mmmmmmmm fp-48=0000???? fp-56=mmmmmmmm refs=2 # 98: (bf) r2 = r10 # 99: (07) r2 += -44 # 100: (bf) r3 = r10 # 101: (07) r3 += -56 # 102: (18) r1 = 0x0 # 104: (b7) r4 = 0 # 105: (85) call bpf_map_update_elem#2 # R1 type=inv expected=map_ptr # processed 60 insns (limit 1000000) max_states_per_insn 0 total_states 11 peak_states 11 mark_read 8 # # Error fetching program/map! # Unable to load program not ok 41 selftests: bpf: test_tcp_check_syncookie.sh # selftests: bpf: test_tc_tunnel.sh # ipip # encap 192.168.1.1 to 192.168.1.2, type ipip, mac none len 100 # Cannot get device udp-fragmentation-offload settings: Operation not supported # Cannot get device udp-fragmentation-offload settings: Operation not supported # test basic connectivity # exec of "nc" failed: No such file or directory # timeout: failed to run command ‘nc’: No such file or directory not ok 42 selftests: bpf: test_tc_tunnel.sh # selftests: bpf: test_tc_edt.sh # nc is not available not ok 43 selftests: bpf: test_tc_edt.sh # selftests: bpf: test_xdping.sh # Test client args '-I veth1 -S'; server args '' # PING 10.1.1.100 (10.1.1.100) from 10.1.1.200 veth1: 56(84) bytes of data. # 64 bytes from 10.1.1.100: icmp_seq=1 ttl=64 time=0.059 ms # 64 bytes from 10.1.1.100: icmp_seq=2 ttl=64 time=0.068 ms # 64 bytes from 10.1.1.100: icmp_seq=3 ttl=64 time=0.102 ms # 64 bytes from 10.1.1.100: icmp_seq=8 ttl=64 time=0.069 ms # # --- 10.1.1.100 ping statistics --- # 4 packets transmitted, 4 received, 0% packet loss, time 3046ms # rtt min/avg/max/mdev = 0.059/0.074/0.102/0.018 ms # Setting up XDP for veth1, please wait... # XDP setup disrupts network connectivity, hit Ctrl+C to quit # # Normal ping RTT data # [Ignore final RTT; it is distorted by XDP using the reply] # # XDP RTT data: # 64 bytes from 10.1.1.100: icmp_seq=5 ttl=64 time=0.00332 ms # 64 bytes from 10.1.1.100: icmp_seq=6 ttl=64 time=0.00269 ms # 64 bytes from 10.1.1.100: icmp_seq=7 ttl=64 time=0.00264 ms # 64 bytes from 10.1.1.100: icmp_seq=8 ttl=64 time=0.00265 ms # Test client args '-I veth1 -S'; server args '': PASS # Test client args '-I veth1 -S -c 10'; server args '' # PING 10.1.1.100 (10.1.1.100) from 10.1.1.200 veth1: 56(84) bytes of data. # 64 bytes from 10.1.1.100: icmp_seq=1 ttl=64 time=0.039 ms # 64 bytes from 10.1.1.100: icmp_seq=2 ttl=64 time=0.058 ms # 64 bytes from 10.1.1.100: icmp_seq=3 ttl=64 time=0.084 ms # 64 bytes from 10.1.1.100: icmp_seq=4 ttl=64 time=0.054 ms # 64 bytes from 10.1.1.100: icmp_seq=5 ttl=64 time=0.054 ms # 64 bytes from 10.1.1.100: icmp_seq=6 ttl=64 time=0.054 ms # 64 bytes from 10.1.1.100: icmp_seq=7 ttl=64 time=0.053 ms # 64 bytes from 10.1.1.100: icmp_seq=8 ttl=64 time=0.051 ms # 64 bytes from 10.1.1.100: icmp_seq=9 ttl=64 time=0.051 ms # 64 bytes from 10.1.1.100: icmp_seq=20 ttl=64 time=0.076 ms # # --- 10.1.1.100 ping statistics --- # 10 packets transmitted, 10 received, 0% packet loss, time 9238ms # rtt min/avg/max/mdev = 0.039/0.057/0.084/0.014 ms # Setting up XDP for veth1, please wait... # XDP setup disrupts network connectivity, hit Ctrl+C to quit # # Normal ping RTT data # [Ignore final RTT; it is distorted by XDP using the reply] # # XDP RTT data: # 64 bytes from 10.1.1.100: icmp_seq=11 ttl=64 time=0.00299 ms # 64 bytes from 10.1.1.100: icmp_seq=12 ttl=64 time=0.00211 ms # 64 bytes from 10.1.1.100: icmp_seq=13 ttl=64 time=0.00201 ms # 64 bytes from 10.1.1.100: icmp_seq=14 ttl=64 time=0.00194 ms # 64 bytes from 10.1.1.100: icmp_seq=15 ttl=64 time=0.00192 ms # 64 bytes from 10.1.1.100: icmp_seq=16 ttl=64 time=0.00194 ms # 64 bytes from 10.1.1.100: icmp_seq=17 ttl=64 time=0.00193 ms # 64 bytes from 10.1.1.100: icmp_seq=18 ttl=64 time=0.00194 ms # 64 bytes from 10.1.1.100: icmp_seq=19 ttl=64 time=0.00194 ms # 64 bytes from 10.1.1.100: icmp_seq=20 ttl=64 time=0.00193 ms # Test client args '-I veth1 -S -c 10'; server args '': PASS # Test client args '-I veth1 -S'; server args '-I veth0 -s -S' # PING 10.1.1.100 (10.1.1.100) from 10.1.1.200 veth1: 56(84) bytes of data. # 64 bytes from 10.1.1.100: icmp_seq=1 ttl=64 time=0.028 ms # 64 bytes from 10.1.1.100: icmp_seq=2 ttl=64 time=0.039 ms # 64 bytes from 10.1.1.100: icmp_seq=3 ttl=64 time=0.054 ms # 64 bytes from 10.1.1.100: icmp_seq=8 ttl=64 time=0.046 ms # # --- 10.1.1.100 ping statistics --- # 4 packets transmitted, 4 received, 0% packet loss, time 3102ms # rtt min/avg/max/mdev = 0.028/0.041/0.054/0.012 ms # Setting up XDP for veth1, please wait... # XDP setup disrupts network connectivity, hit Ctrl+C to quit # # Normal ping RTT data # [Ignore final RTT; it is distorted by XDP using the reply] # # XDP RTT data: # 64 bytes from 10.1.1.100: icmp_seq=5 ttl=64 time=0.00085 ms # 64 bytes from 10.1.1.100: icmp_seq=6 ttl=64 time=0.00079 ms # 64 bytes from 10.1.1.100: icmp_seq=7 ttl=64 time=0.00080 ms # 64 bytes from 10.1.1.100: icmp_seq=8 ttl=64 time=0.00075 ms # Test client args '-I veth1 -S'; server args '-I veth0 -s -S': PASS # Test client args '-I veth1 -S -c 10'; server args '-I veth0 -s -S' # Setting up XDP for veth0, please wait... # XDP setup disrupts network connectivity, hit Ctrl+C to quit # Running server on veth0; press Ctrl+C to exit... # PING 10.1.1.100 (10.1.1.100) from 10.1.1.200 veth1: 56(84) bytes of data. # 64 bytes from 10.1.1.100: icmp_seq=1 ttl=64 time=0.031 ms # 64 bytes from 10.1.1.100: icmp_seq=2 ttl=64 time=0.038 ms # 64 bytes from 10.1.1.100: icmp_seq=3 ttl=64 time=0.038 ms # 64 bytes from 10.1.1.100: icmp_seq=4 ttl=64 time=0.045 ms # 64 bytes from 10.1.1.100: icmp_seq=5 ttl=64 time=0.036 ms # 64 bytes from 10.1.1.100: icmp_seq=6 ttl=64 time=0.042 ms # 64 bytes from 10.1.1.100: icmp_seq=7 ttl=64 time=0.036 ms # 64 bytes from 10.1.1.100: icmp_seq=8 ttl=64 time=0.039 ms # 64 bytes from 10.1.1.100: icmp_seq=9 ttl=64 time=0.039 ms # 64 bytes from 10.1.1.100: icmp_seq=20 ttl=64 time=0.068 ms # # --- 10.1.1.100 ping statistics --- # 10 packets transmitted, 10 received, 0% packet loss, time 9207ms # rtt min/avg/max/mdev = 0.031/0.041/0.068/0.010 ms # Setting up XDP for veth1, please wait... # XDP setup disrupts network connectivity, hit Ctrl+C to quit # # Normal ping RTT data # [Ignore final RTT; it is distorted by XDP using the reply] # # XDP RTT data: # 64 bytes from 10.1.1.100: icmp_seq=11 ttl=64 time=0.00076 ms # 64 bytes from 10.1.1.100: icmp_seq=12 ttl=64 time=0.00069 ms # 64 bytes from 10.1.1.100: icmp_seq=13 ttl=64 time=0.00064 ms # 64 bytes from 10.1.1.100: icmp_seq=14 ttl=64 time=0.00064 ms # 64 bytes from 10.1.1.100: icmp_seq=15 ttl=64 time=0.00060 ms # 64 bytes from 10.1.1.100: icmp_seq=16 ttl=64 time=0.00061 ms # 64 bytes from 10.1.1.100: icmp_seq=17 ttl=64 time=0.00073 ms # 64 bytes from 10.1.1.100: icmp_seq=18 ttl=64 time=0.00060 ms # 64 bytes from 10.1.1.100: icmp_seq=19 ttl=64 time=0.00070 ms # 64 bytes from 10.1.1.100: icmp_seq=20 ttl=64 time=0.00064 ms # Test client args '-I veth1 -S -c 10'; server args '-I veth0 -s -S': PASS # OK. All tests passed # Setting up XDP for veth0, please wait... # XDP setup disrupts network connectivity, hit Ctrl+C to quit # Running server on veth0; press Ctrl+C to exit... ok 44 selftests: bpf: test_xdping.sh make: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/bpf' ignored_by_lkp breakpoints.step_after_suspend_test test 2019-06-05 16:09:15 make run_tests -C breakpoints make: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/breakpoints' gcc breakpoint_test.c -o /usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/breakpoints/breakpoint_test TAP version 13 1..1 # selftests: breakpoints: breakpoint_test # TAP version 13 # 1..110 # ok 1 Test breakpoint 0 with local: 0 global: 1 # ok 2 Test breakpoint 1 with local: 0 global: 1 # ok 3 Test breakpoint 2 with local: 0 global: 1 # ok 4 Test breakpoint 3 with local: 0 global: 1 # ok 5 Test breakpoint 0 with local: 1 global: 0 # ok 6 Test breakpoint 1 with local: 1 global: 0 # ok 7 Test breakpoint 2 with local: 1 global: 0 # ok 8 Test breakpoint 3 with local: 1 global: 0 # ok 9 Test breakpoint 0 with local: 1 global: 1 # ok 10 Test breakpoint 1 with local: 1 global: 1 # ok 11 Test breakpoint 2 with local: 1 global: 1 # ok 12 Test breakpoint 3 with local: 1 global: 1 # ok 13 Test write watchpoint 0 with len: 1 local: 0 global: 1 # ok 14 Test write watchpoint 1 with len: 1 local: 0 global: 1 # ok 15 Test write watchpoint 2 with len: 1 local: 0 global: 1 # ok 16 Test write watchpoint 3 with len: 1 local: 0 global: 1 # ok 17 Test write watchpoint 0 with len: 1 local: 1 global: 0 # ok 18 Test write watchpoint 1 with len: 1 local: 1 global: 0 # ok 19 Test write watchpoint 2 with len: 1 local: 1 global: 0 # ok 20 Test write watchpoint 3 with len: 1 local: 1 global: 0 # ok 21 Test write watchpoint 0 with len: 1 local: 1 global: 1 # ok 22 Test write watchpoint 1 with len: 1 local: 1 global: 1 # ok 23 Test write watchpoint 2 with len: 1 local: 1 global: 1 # ok 24 Test write watchpoint 3 with len: 1 local: 1 global: 1 # ok 25 Test write watchpoint 0 with len: 2 local: 0 global: 1 # ok 26 Test write watchpoint 1 with len: 2 local: 0 global: 1 # ok 27 Test write watchpoint 2 with len: 2 local: 0 global: 1 # ok 28 Test write watchpoint 3 with len: 2 local: 0 global: 1 # ok 29 Test write watchpoint 0 with len: 2 local: 1 global: 0 # ok 30 Test write watchpoint 1 with len: 2 local: 1 global: 0 # ok 31 Test write watchpoint 2 with len: 2 local: 1 global: 0 # ok 32 Test write watchpoint 3 with len: 2 local: 1 global: 0 # ok 33 Test write watchpoint 0 with len: 2 local: 1 global: 1 # ok 34 Test write watchpoint 1 with len: 2 local: 1 global: 1 # ok 35 Test write watchpoint 2 with len: 2 local: 1 global: 1 # ok 36 Test write watchpoint 3 with len: 2 local: 1 global: 1 # ok 37 Test write watchpoint 0 with len: 4 local: 0 global: 1 # ok 38 Test write watchpoint 1 with len: 4 local: 0 global: 1 # ok 39 Test write watchpoint 2 with len: 4 local: 0 global: 1 # ok 40 Test write watchpoint 3 with len: 4 local: 0 global: 1 # ok 41 Test write watchpoint 0 with len: 4 local: 1 global: 0 # ok 42 Test write watchpoint 1 with len: 4 local: 1 global: 0 # ok 43 Test write watchpoint 2 with len: 4 local: 1 global: 0 # ok 44 Test write watchpoint 3 with len: 4 local: 1 global: 0 # ok 45 Test write watchpoint 0 with len: 4 local: 1 global: 1 # ok 46 Test write watchpoint 1 with len: 4 local: 1 global: 1 # ok 47 Test write watchpoint 2 with len: 4 local: 1 global: 1 # ok 48 Test write watchpoint 3 with len: 4 local: 1 global: 1 # ok 49 Test write watchpoint 0 with len: 8 local: 0 global: 1 # ok 50 Test write watchpoint 1 with len: 8 local: 0 global: 1 # ok 51 Test write watchpoint 2 with len: 8 local: 0 global: 1 # ok 52 Test write watchpoint 3 with len: 8 local: 0 global: 1 # ok 53 Test write watchpoint 0 with len: 8 local: 1 global: 0 # ok 54 Test write watchpoint 1 with len: 8 local: 1 global: 0 # ok 55 Test write watchpoint 2 with len: 8 local: 1 global: 0 # ok 56 Test write watchpoint 3 with len: 8 local: 1 global: 0 # ok 57 Test write watchpoint 0 with len: 8 local: 1 global: 1 # ok 58 Test write watchpoint 1 with len: 8 local: 1 global: 1 # ok 59 Test write watchpoint 2 with len: 8 local: 1 global: 1 # ok 60 Test write watchpoint 3 with len: 8 local: 1 global: 1 # ok 61 Test read watchpoint 0 with len: 1 local: 0 global: 1 # ok 62 Test read watchpoint 1 with len: 1 local: 0 global: 1 # ok 63 Test read watchpoint 2 with len: 1 local: 0 global: 1 # ok 64 Test read watchpoint 3 with len: 1 local: 0 global: 1 # ok 65 Test read watchpoint 0 with len: 1 local: 1 global: 0 # ok 66 Test read watchpoint 1 with len: 1 local: 1 global: 0 # ok 67 Test read watchpoint 2 with len: 1 local: 1 global: 0 # ok 68 Test read watchpoint 3 with len: 1 local: 1 global: 0 # ok 69 Test read watchpoint 0 with len: 1 local: 1 global: 1 # ok 70 Test read watchpoint 1 with len: 1 local: 1 global: 1 # ok 71 Test read watchpoint 2 with len: 1 local: 1 global: 1 # ok 72 Test read watchpoint 3 with len: 1 local: 1 global: 1 # ok 73 Test read watchpoint 0 with len: 2 local: 0 global: 1 # ok 74 Test read watchpoint 1 with len: 2 local: 0 global: 1 # ok 75 Test read watchpoint 2 with len: 2 local: 0 global: 1 # ok 76 Test read watchpoint 3 with len: 2 local: 0 global: 1 # ok 77 Test read watchpoint 0 with len: 2 local: 1 global: 0 # ok 78 Test read watchpoint 1 with len: 2 local: 1 global: 0 # ok 79 Test read watchpoint 2 with len: 2 local: 1 global: 0 # ok 80 Test read watchpoint 3 with len: 2 local: 1 global: 0 # ok 81 Test read watchpoint 0 with len: 2 local: 1 global: 1 # ok 82 Test read watchpoint 1 with len: 2 local: 1 global: 1 # ok 83 Test read watchpoint 2 with len: 2 local: 1 global: 1 # ok 84 Test read watchpoint 3 with len: 2 local: 1 global: 1 # ok 85 Test read watchpoint 0 with len: 4 local: 0 global: 1 # ok 86 Test read watchpoint 1 with len: 4 local: 0 global: 1 # ok 87 Test read watchpoint 2 with len: 4 local: 0 global: 1 # ok 88 Test read watchpoint 3 with len: 4 local: 0 global: 1 # ok 89 Test read watchpoint 0 with len: 4 local: 1 global: 0 # ok 90 Test read watchpoint 1 with len: 4 local: 1 global: 0 # ok 91 Test read watchpoint 2 with len: 4 local: 1 global: 0 # ok 92 Test read watchpoint 3 with len: 4 local: 1 global: 0 # ok 93 Test read watchpoint 0 with len: 4 local: 1 global: 1 # ok 94 Test read watchpoint 1 with len: 4 local: 1 global: 1 # ok 95 Test read watchpoint 2 with len: 4 local: 1 global: 1 # ok 96 Test read watchpoint 3 with len: 4 local: 1 global: 1 # ok 97 Test read watchpoint 0 with len: 8 local: 0 global: 1 # ok 98 Test read watchpoint 1 with len: 8 local: 0 global: 1 # ok 99 Test read watchpoint 2 with len: 8 local: 0 global: 1 # ok 100 Test read watchpoint 3 with len: 8 local: 0 global: 1 # ok 101 Test read watchpoint 0 with len: 8 local: 1 global: 0 # ok 102 Test read watchpoint 1 with len: 8 local: 1 global: 0 # ok 103 Test read watchpoint 2 with len: 8 local: 1 global: 0 # ok 104 Test read watchpoint 3 with len: 8 local: 1 global: 0 # ok 105 Test read watchpoint 0 with len: 8 local: 1 global: 1 # ok 106 Test read watchpoint 1 with len: 8 local: 1 global: 1 # ok 107 Test read watchpoint 2 with len: 8 local: 1 global: 1 # ok 108 Test read watchpoint 3 with len: 8 local: 1 global: 1 # ok 109 Test icebp # ok 110 Test int 3 trap # # Pass 110 Fail 0 Xfail 0 Xpass 0 Skip 0 Error 0 # TAP version 13 ok 1 selftests: breakpoints: breakpoint_test make: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-84da156938373b0f072b4a1394f199949631a081/tools/testing/selftests/breakpoints'