# Below we forbid everything and only allow what we know, that's much easier
# than blocking about 500 different test files and bug report outputs.
/.*
/*
!/.cirrus.yml
!/.gitattributes
!/.github
!/.gitignore
!/.travis.yml
!/CHANGELOG
!/LICENSE
!/BRANCHES
!/BSDmakefile
!/Makefile
!/README
!/INSTALL
!/CONTRIBUTING
!/MAINTAINERS
!/SUBVERS
!/VERDATE
!/VERSION
!/addons
!/admin
!/dev
!/doc
!/ebtree
!/examples
!/include
!/src
!/tests
!/debian
!/scripts
!/reg-tests
# Reject some generic files
*.o
*.a
*~
*.rej
*.orig
*.bak
*.sw[op]
# And reject some specific files
/admin/halog/halog
/admin/dyncookie/dyncookie
/admin/iprange/ip6range
/admin/iprange/iprange
/admin/systemd/haproxy.service
dev/base64/base64rev-gen
dev/flags/flags
dev/poll/poll
dev/tcploop/tcploop
dev/haring/haring
dev/hpack/decode
dev/hpack/gen-rht
dev/qpack/decode
dev/udp/udp-perturb
/src/dlmalloc.c
/tests/test_hashes
doc/lua-api/_build
