From f80e0a11cf17381edddbbf817eb5665b1ffbfc1e Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Wed, 5 Oct 2022 19:03:07 +0200
Subject: [PATCH 01/27] Update libddwaf to 1.5.1

Also update vendored rulesets to 1.4.1

Notable libddwaf API changes include:
- ability to set sideband rule data
- ability to toggle rules
- proper separation of return code vs decided action
- ability to hint at multiple actions
- non-reliance on garbage collector (finalization must be explicit)
---
 ddtrace.gemspec                               |    2 +-
 .../appsec/assets/waf_rules/recommended.json  | 1444 +++++++++++++----
 .../appsec/assets/waf_rules/risky.json        |  156 +-
 .../appsec/assets/waf_rules/strict.json       |  366 ++++-
 .../appsec/contrib/rack/gateway/watcher.rb    |   24 +-
 .../appsec/contrib/rack/reactive/request.rb   |   20 +-
 .../contrib/rack/reactive/request_body.rb     |   20 +-
 .../appsec/contrib/rack/reactive/response.rb  |   20 +-
 .../appsec/contrib/rails/gateway/watcher.rb   |    8 +-
 .../appsec/contrib/rails/reactive/action.rb   |   20 +-
 .../appsec/contrib/sinatra/gateway/watcher.rb |   16 +-
 .../appsec/contrib/sinatra/reactive/routed.rb |   20 +-
 lib/datadog/appsec/processor.rb               |   20 +-
 spec/datadog/appsec/processor_spec.rb         |   96 +-
 14 files changed, 1708 insertions(+), 524 deletions(-)

diff --git a/ddtrace.gemspec b/ddtrace.gemspec
index 64a58ff92d0..14a752feb20 100644
--- a/ddtrace.gemspec
+++ b/ddtrace.gemspec
@@ -64,7 +64,7 @@ Gem::Specification.new do |spec|
   spec.add_dependency 'debase-ruby_core_source', '>= 0.10.16', '<= 0.10.17'
 
   # Used by appsec
-  spec.add_dependency 'libddwaf', '~> 1.3.0.2.0'
+  spec.add_dependency 'libddwaf', '~> 1.5.1.0.0'
 
   # Used by profiling (and possibly others in the future)
   spec.add_dependency 'libdatadog', '~> 0.7.0.1.1'
diff --git a/lib/datadog/appsec/assets/waf_rules/recommended.json b/lib/datadog/appsec/assets/waf_rules/recommended.json
index d0e85a3842d..45c4e210a03 100644
--- a/lib/datadog/appsec/assets/waf_rules/recommended.json
+++ b/lib/datadog/appsec/assets/waf_rules/recommended.json
@@ -1,9 +1,34 @@
 {
   "version": "2.2",
   "metadata": {
-    "rules_version": "1.3.1"
+    "rules_version": "1.4.1"
   },
   "rules": [
+    {
+      "id": "blk-001-001",
+      "name": "Block IP Addresses",
+      "tags": {
+        "type": "block_ip",
+        "category": "security_response"
+      },
+      "conditions": [
+        {
+          "parameters": {
+            "inputs": [
+              {
+                "address": "http.client_ip"
+              }
+            ],
+            "data": "blocked_ips"
+          },
+          "operator": "ip_match"
+        }
+      ],
+      "transformers": [],
+      "on_match": [
+        "block"
+      ]
+    },
     {
       "id": "crs-913-110",
       "name": "Acunetix",
@@ -224,7 +249,7 @@
                 "address": "server.request.headers.no_cookies"
               }
             ],
-            "regex": "(?:\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|/))(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8|e)0%80%ae|2(?:(?:5(?:c0%25a|2))?e|%45)|u(?:(?:002|ff0)e|2024)|%32(?:%(?:%6|4)5|E)|c0(?:%[256aef]e|\\.))|\\.(?:%0[01]|\\?)?|\\?\\.?|0x2e){2}(?:\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|/))",
+            "regex": "(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\/|\\x5c)(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8|e)0%80%ae|2(?:(?:5(?:c0%25a|2))?e|%45)|u(?:(?:002|ff0)e|2024)|%32(?:%(?:%6|4)5|E)|c0(?:%[256aef]e|\\.))|\\.(?:%0[01]|\\?)?|\\?\\.?|0x2e){2,3}(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\/|\\x5c)",
             "options": {
               "min_length": 4
             }
@@ -255,7 +280,7 @@
                 "address": "server.request.headers.no_cookies"
               }
             ],
-            "regex": "(?:(?:^|[\\\\/])\\.\\.[\\\\/]|[\\\\/]\\.\\.(?:[\\\\/]|$))",
+            "regex": "(?:(?:^|[\\x5c/])\\.{2,3}[\\x5c/]|[\\x5c/]\\.{2,3}(?:[\\x5c/]|$))",
             "options": {
               "case_sensitive": true,
               "min_length": 3
@@ -299,6 +324,8 @@
               "/.htpasswd",
               "/.addressbook",
               "/.aptitude/config",
+              ".aws/config",
+              ".aws/credentials",
               "/.bash_config",
               "/.bash_history",
               "/.bash_logout",
@@ -330,6 +357,7 @@
               "/.nano_history",
               "/.node_repl_history",
               "/.pearrc",
+              "/.pgpass",
               "/.php_history",
               "/.pinerc",
               ".pki/",
@@ -350,6 +378,8 @@
               ".ssh/id_rsa.pub",
               ".ssh/identity",
               ".ssh/identity.pub",
+              ".ssh/id_ecdsa",
+              ".ssh/id_ecdsa.pub",
               ".ssh/known_hosts",
               ".subversion/auth",
               ".subversion/config",
@@ -366,6 +396,225 @@
               "/.zshrc",
               "/.zsh_history",
               "/.nsconfig",
+              "data/elasticsearch",
+              "data/kafka",
+              "etc/ansible",
+              "etc/bind",
+              "etc/centos-release",
+              "etc/centos-release-upstream",
+              "etc/clam.d",
+              "etc/elasticsearch",
+              "etc/freshclam.conf",
+              "etc/gshadow",
+              "etc/gshadow-",
+              "etc/httpd",
+              "etc/kafka",
+              "etc/kibana",
+              "etc/logstash",
+              "etc/lvm",
+              "etc/mongod.conf",
+              "etc/my.cnf",
+              "etc/nuxeo.conf",
+              "etc/pki",
+              "etc/postfix",
+              "etc/scw-release",
+              "etc/subgid",
+              "etc/subgid-",
+              "etc/sudoers.d",
+              "etc/sysconfig",
+              "etc/system-release-cpe",
+              "opt/nuxeo",
+              "opt/tomcat",
+              "tmp/kafka-logs",
+              "usr/lib/rpm/rpm.log",
+              "var/data/elasticsearch",
+              "var/lib/elasticsearch",
+              "etc/.java",
+              "etc/acpi",
+              "etc/alsa",
+              "etc/alternatives",
+              "etc/apache2",
+              "etc/apm",
+              "etc/apparmor",
+              "etc/apparmor.d",
+              "etc/apport",
+              "etc/apt",
+              "etc/asciidoc",
+              "etc/avahi",
+              "etc/bash_completion.d",
+              "etc/binfmt.d",
+              "etc/bluetooth",
+              "etc/bonobo-activation",
+              "etc/brltty",
+              "etc/ca-certificates",
+              "etc/calendar",
+              "etc/chatscripts",
+              "etc/chromium-browser",
+              "etc/clamav",
+              "etc/cni",
+              "etc/console-setup",
+              "etc/coraza-waf",
+              "etc/cracklib",
+              "etc/cron.d",
+              "etc/cron.daily",
+              "etc/cron.hourly",
+              "etc/cron.monthly",
+              "etc/cron.weekly",
+              "etc/cups",
+              "etc/cups.save",
+              "etc/cupshelpers",
+              "etc/dbus-1",
+              "etc/dconf",
+              "etc/default",
+              "etc/depmod.d",
+              "etc/dhcp",
+              "etc/dictionaries-common",
+              "etc/dkms",
+              "etc/dnsmasq.d",
+              "etc/dockeretc/dpkg",
+              "etc/emacs",
+              "etc/environment.d",
+              "etc/fail2ban",
+              "etc/firebird",
+              "etc/firefox",
+              "etc/fonts",
+              "etc/fwupd",
+              "etc/gconf",
+              "etc/gdb",
+              "etc/gdm3",
+              "etc/geoclue",
+              "etc/ghostscript",
+              "etc/gimp",
+              "etc/glvnd",
+              "etc/gnome",
+              "etc/gnome-vfs-2.0",
+              "etc/gnucash",
+              "etc/gnustep",
+              "etc/groff",
+              "etc/grub.d",
+              "etc/gss",
+              "etc/gtk-2.0",
+              "etc/gtk-3.0",
+              "etc/hp",
+              "etc/ifplugd",
+              "etc/imagemagick-6",
+              "etc/init",
+              "etc/init.d",
+              "etc/initramfs-tools",
+              "etc/insserv.conf.d",
+              "etc/iproute2",
+              "etc/iptables",
+              "etc/java",
+              "etc/java-11-openjdk",
+              "etc/java-17-oracle",
+              "etc/java-8-openjdk",
+              "etc/kernel",
+              "etc/ld.so.conf.d",
+              "etc/ldap",
+              "etc/libblockdev",
+              "etc/libibverbs.d",
+              "etc/libnl-3",
+              "etc/libpaper.d",
+              "etc/libreoffice",
+              "etc/lighttpd",
+              "etc/logcheck",
+              "etc/logrotate.d",
+              "etc/lynx",
+              "etc/mail",
+              "etc/mc",
+              "etc/menu",
+              "etc/menu-methods",
+              "etc/modprobe.d",
+              "etc/modsecurity",
+              "etc/modules-load.d",
+              "etc/monit",
+              "etc/mono",
+              "etc/mplayer",
+              "etc/mpv",
+              "etc/muttrc.d",
+              "etc/mysql",
+              "etc/netplan",
+              "etc/network",
+              "etc/networkd-dispatcher",
+              "etc/networkmanager",
+              "etc/newt",
+              "etc/nghttpx",
+              "etc/nikto",
+              "etc/odbcdatasources",
+              "etc/openal",
+              "etc/openmpi",
+              "etc/opt",
+              "etc/osync",
+              "etc/packagekit",
+              "etc/pam.d",
+              "etc/pcmcia",
+              "etc/perl",
+              "etc/php",
+              "etc/pki",
+              "etc/pm",
+              "etc/polkit-1",
+              "etc/postfix",
+              "etc/ppp",
+              "etc/profile.d",
+              "etc/proftpd",
+              "etc/pulse",
+              "etc/python",
+              "etc/rc0.d",
+              "etc/rc1.d",
+              "etc/rc2.d",
+              "etc/rc3.d",
+              "etc/rc4.d",
+              "etc/rc5.d",
+              "etc/rc6.d",
+              "etc/rcs.d",
+              "etc/resolvconf",
+              "etc/rsyslog.d",
+              "etc/samba",
+              "etc/sane.d",
+              "etc/security",
+              "etc/selinux",
+              "etc/sensors.d",
+              "etc/sgml",
+              "etc/signon-ui",
+              "etc/skel",
+              "etc/snmp",
+              "etc/sound",
+              "etc/spamassassin",
+              "etc/speech-dispatcher",
+              "etc/ssh",
+              "etc/ssl",
+              "etc/sudoers.d",
+              "etc/sysctl.d",
+              "etc/sysstat",
+              "etc/systemd",
+              "etc/terminfo",
+              "etc/texmf",
+              "etc/thermald",
+              "etc/thnuclnt",
+              "etc/thunderbird",
+              "etc/timidity",
+              "etc/tmpfiles.d",
+              "etc/ubuntu-advantage",
+              "etc/udev",
+              "etc/udisks2",
+              "etc/ufw",
+              "etc/update-manager",
+              "etc/update-motd.d",
+              "etc/update-notifier",
+              "etc/upower",
+              "etc/urlview",
+              "etc/usb_modeswitch.d",
+              "etc/vim",
+              "etc/vmware",
+              "etc/vmware-installer",
+              "etc/vmware-vix",
+              "etc/vulkan",
+              "etc/w3m",
+              "etc/wireshark",
+              "etc/wpa_supplicant",
+              "etc/x11",
+              "etc/xdg",
+              "etc/xml",
               "etc/redis.conf",
               "etc/redis-sentinel.conf",
               "etc/php.ini",
@@ -417,10 +666,8 @@
               "usr/local/cpanel/logs/license_log",
               "usr/local/cpanel/logs/login_log",
               "var/cpanel/cpanel.config",
-              "var/log/sw-cp-server/error_log",
               "usr/local/psa/admin/logs/httpsd_access_log",
               "usr/local/psa/admin/logs/panel.log",
-              "var/log/sso/sso.log",
               "usr/local/psa/admin/conf/php.ini",
               "etc/sw-cp-server/applications.d/plesk.conf",
               "usr/local/psa/admin/conf/site_isolation_settings.ini",
@@ -428,16 +675,6 @@
               "etc/sw-cp-server/applications.d/00-sso-cpserver.conf",
               "etc/sso/sso_config.ini",
               "etc/mysql/conf.d/old_passwords.cnf",
-              "var/log/mysql/mysql-bin.log",
-              "var/log/mysql/mysql-bin.index",
-              "var/log/mysql/data/mysql-bin.index",
-              "var/log/mysql.log",
-              "var/log/mysql.err",
-              "var/log/mysqlderror.log",
-              "var/log/mysql/mysql.log",
-              "var/log/mysql/mysql-slow.log",
-              "var/log/mysql-bin.index",
-              "var/log/data/mysql-bin.index",
               "var/mysql.log",
               "var/mysql-bin.index",
               "var/data/mysql-bin.index",
@@ -474,21 +711,6 @@
               "mysql/my.cnf",
               "mysql/bin/my.ini",
               "var/postgresql/log/postgresql.log",
-              "var/log/postgresql/postgresql.log",
-              "var/log/postgres/pg_backup.log",
-              "var/log/postgres/postgres.log",
-              "var/log/postgresql.log",
-              "var/log/pgsql/pgsql.log",
-              "var/log/postgresql/postgresql-8.1-main.log",
-              "var/log/postgresql/postgresql-8.3-main.log",
-              "var/log/postgresql/postgresql-8.4-main.log",
-              "var/log/postgresql/postgresql-9.0-main.log",
-              "var/log/postgresql/postgresql-9.1-main.log",
-              "var/log/pgsql8.log",
-              "var/log/postgresql/postgres.log",
-              "var/log/pgsql_log",
-              "var/log/postgresql/main.log",
-              "var/log/cron/var/log/postgres.log",
               "usr/internet/pgsql/data/postmaster.log",
               "usr/local/pgsql/data/postgresql.log",
               "usr/local/pgsql/data/pg_log",
@@ -572,29 +794,21 @@
               "windows/system32/logfiles/msftpsvc2",
               "etc/logrotate.d/proftpd",
               "www/logs/proftpd.system.log",
-              "var/log/proftpd",
-              "var/log/proftpd/xferlog.legacy",
-              "var/log/proftpd.access_log",
-              "var/log/proftpd.xferlog",
               "etc/pam.d/proftpd",
               "etc/proftp.conf",
               "etc/protpd/proftpd.conf",
               "etc/vhcs2/proftpd/proftpd.conf",
               "etc/proftpd/modules.conf",
-              "var/log/vsftpd.log",
               "etc/vsftpd.chroot_list",
               "etc/logrotate.d/vsftpd.log",
               "etc/vsftpd/vsftpd.conf",
               "etc/vsftpd.conf",
               "etc/chrootusers",
-              "var/log/xferlog",
               "var/adm/log/xferlog",
               "etc/wu-ftpd/ftpaccess",
               "etc/wu-ftpd/ftphosts",
               "etc/wu-ftpd/ftpusers",
-              "var/log/pure-ftpd/pure-ftpd.log",
               "logs/pure-ftpd.log",
-              "var/log/pureftpd.log",
               "usr/sbin/pure-config.pl",
               "usr/etc/pure-ftpd.conf",
               "etc/pure-ftpd/pure-ftpd.conf",
@@ -620,30 +834,18 @@
               "usr/ports/contrib/pure-ftpd/pure-ftpd.conf",
               "usr/ports/contrib/pure-ftpd/pureftpd.pdb",
               "usr/ports/contrib/pure-ftpd/pureftpd.passwd",
-              "var/log/muddleftpd",
               "usr/sbin/mudlogd",
               "etc/muddleftpd/mudlog",
               "etc/muddleftpd.com",
               "etc/muddleftpd/mudlogd.conf",
               "etc/muddleftpd/muddleftpd.conf",
-              "var/log/muddleftpd.conf",
               "usr/sbin/mudpasswd",
               "etc/muddleftpd/muddleftpd.passwd",
               "etc/muddleftpd/passwd",
-              "var/log/ftp-proxy/ftp-proxy.log",
-              "var/log/ftp-proxy",
-              "var/log/ftplog",
               "etc/logrotate.d/ftp",
               "etc/ftpchroot",
               "etc/ftphosts",
               "etc/ftpusers",
-              "var/log/exim_mainlog",
-              "var/log/exim/mainlog",
-              "var/log/maillog",
-              "var/log/exim_paniclog",
-              "var/log/exim/paniclog",
-              "var/log/exim/rejectlog",
-              "var/log/exim_rejectlog",
               "winnt/system32/logfiles/smtpsvc",
               "winnt/system32/logfiles/smtpsvc1",
               "winnt/system32/logfiles/smtpsvc2",
@@ -716,7 +918,6 @@
               "library/webserver/documents/default.htm",
               "library/webserver/documents/index.php",
               "library/webserver/documents/default.php",
-              "var/log/webmin/miniserv.log",
               "usr/local/etc/webmin/miniserv.conf",
               "etc/webmin/miniserv.conf",
               "usr/local/etc/webmin/miniserv.users",
@@ -729,8 +930,6 @@
               "windows/system32/logfiles/w3svc1/inetsvn1.log",
               "windows/system32/logfiles/w3svc2/inetsvn1.log",
               "windows/system32/logfiles/w3svc3/inetsvn1.log",
-              "var/log/httpd/access_log",
-              "var/log/httpd/error_log",
               "apache/logs/error.log",
               "apache/logs/access.log",
               "apache2/logs/error.log",
@@ -753,20 +952,6 @@
               "var/www/logs/access.log",
               "var/www/logs/error_log",
               "var/www/logs/error.log",
-              "var/log/httpd/access.log",
-              "var/log/httpd/error.log",
-              "var/log/apache/access_log",
-              "var/log/apache/access.log",
-              "var/log/apache/error_log",
-              "var/log/apache/error.log",
-              "var/log/apache2/access_log",
-              "var/log/apache2/access.log",
-              "var/log/apache2/error_log",
-              "var/log/apache2/error.log",
-              "var/log/access_log",
-              "var/log/access.log",
-              "var/log/error_log",
-              "var/log/error.log",
               "opt/lampp/logs/access_log",
               "opt/lampp/logs/error_log",
               "opt/xampp/logs/access_log",
@@ -905,7 +1090,6 @@
               "usr/share/tomcat6/conf/context.xml",
               "usr/share/tomcat6/conf/workers.properties",
               "usr/share/tomcat6/conf/logging.properties",
-              "var/log/tomcat6/catalina.out",
               "var/cpanel/tomcat.options",
               "usr/local/jakarta/tomcat/logs/catalina.out",
               "usr/local/jakarta/tomcat/logs/catalina.err",
@@ -986,23 +1170,14 @@
               "program files/[jboss]/server/default/log/boot.log",
               "[jboss]/server/default/log/server.log",
               "[jboss]/server/default/log/boot.log",
-              "var/log/lighttpd.error.log",
-              "var/log/lighttpd.access.log",
               "var/lighttpd.log",
               "var/logs/access.log",
-              "var/log/lighttpd/",
-              "var/log/lighttpd/error.log",
-              "var/log/lighttpd/access.www.log",
-              "var/log/lighttpd/error.www.log",
-              "var/log/lighttpd/access.log",
               "usr/local/apache2/logs/lighttpd.error.log",
               "usr/local/apache2/logs/lighttpd.log",
               "usr/local/apache/logs/lighttpd.error.log",
               "usr/local/apache/logs/lighttpd.log",
               "usr/local/lighttpd/log/lighttpd.error.log",
               "usr/local/lighttpd/log/access.log",
-              "var/log/lighttpd/{domain}/access.log",
-              "var/log/lighttpd/{domain}/error.log",
               "usr/home/user/var/log/lighttpd.error.log",
               "usr/home/user/var/log/apache.log",
               "home/user/lighttpd/lighttpd.conf",
@@ -1012,12 +1187,6 @@
               "usr/local/lighttpd/conf/lighttpd.conf",
               "usr/local/etc/lighttpd.conf.new",
               "var/www/.lighttpdpassword",
-              "var/log/nginx/access_log",
-              "var/log/nginx/error_log",
-              "var/log/nginx/access.log",
-              "var/log/nginx/error.log",
-              "var/log/nginx.access_log",
-              "var/log/nginx.error_log",
               "logs/access_log",
               "logs/error_log",
               "etc/nginx/nginx.conf",
@@ -1033,12 +1202,6 @@
               "usr/local/logs/access.log",
               "usr/local/samba/lib/log.user",
               "usr/local/logs/samba.log",
-              "var/log/samba/log.smbd",
-              "var/log/samba/log.nmbd",
-              "var/log/samba.log",
-              "var/log/samba.log1",
-              "var/log/samba.log2",
-              "var/log/log.smb",
               "etc/samba/netlogon",
               "etc/smbpasswd",
               "etc/smb.conf",
@@ -1067,10 +1230,6 @@
               "etc/wicd/manager-settings.conf",
               "etc/wicd/wired-settings.conf",
               "etc/wicd/wireless-settings.conf",
-              "var/log/ipfw.log",
-              "var/log/ipfw",
-              "var/log/ipfw/ipfw.log",
-              "var/log/ipfw.today",
               "etc/ipfw.rules",
               "etc/ipfw.conf",
               "etc/firewall.rules",
@@ -1089,33 +1248,6 @@
               "etc/bluetooth/main.conf",
               "etc/bluetooth/network.conf",
               "etc/bluetooth/rfcomm.conf",
-              "proc/self/environ",
-              "proc/self/mounts",
-              "proc/self/stat",
-              "proc/self/status",
-              "proc/self/cmdline",
-              "proc/self/fd/0",
-              "proc/self/fd/1",
-              "proc/self/fd/2",
-              "proc/self/fd/3",
-              "proc/self/fd/4",
-              "proc/self/fd/5",
-              "proc/self/fd/6",
-              "proc/self/fd/7",
-              "proc/self/fd/8",
-              "proc/self/fd/9",
-              "proc/self/fd/10",
-              "proc/self/fd/11",
-              "proc/self/fd/12",
-              "proc/self/fd/13",
-              "proc/self/fd/14",
-              "proc/self/fd/15",
-              "proc/version",
-              "proc/devices",
-              "proc/cpuinfo",
-              "proc/meminfo",
-              "proc/net/tcp",
-              "proc/net/udp",
               "etc/bash_completion.d/debconf",
               "root/.bash_logout",
               "root/.bash_history",
@@ -1153,39 +1285,12 @@
               "var/adm/aculog",
               "var/adm/vold.log",
               "var/adm/log/asppp.log",
-              "var/log/poplog",
-              "var/log/authlog",
               "var/lp/logs/lpsched",
               "var/lp/logs/lpnet",
               "var/lp/logs/requests",
               "var/cron/log",
               "var/saf/_log",
               "var/saf/port/log",
-              "var/log/news.all",
-              "var/log/news/news.all",
-              "var/log/news/news.crit",
-              "var/log/news/news.err",
-              "var/log/news/news.notice",
-              "var/log/news/suck.err",
-              "var/log/news/suck.notice",
-              "var/log/messages",
-              "var/log/messages.1",
-              "var/log/user.log",
-              "var/log/user.log.1",
-              "var/log/auth.log",
-              "var/log/pm-powersave.log",
-              "var/log/xorg.0.log",
-              "var/log/daemon.log",
-              "var/log/daemon.log.1",
-              "var/log/kern.log",
-              "var/log/kern.log.1",
-              "var/log/mail.err",
-              "var/log/mail.info",
-              "var/log/mail.warn",
-              "var/log/ufw.log",
-              "var/log/boot.log",
-              "var/log/syslog",
-              "var/log/syslog.1",
               "tmp/access.log",
               "etc/sensors.conf",
               "etc/sensors3.conf",
@@ -1271,6 +1376,8 @@
               "etc/sudoers",
               "etc/sysconfig/network-scripts/ifcfg-eth0",
               "etc/redhat-release",
+              "etc/scw-release",
+              "etc/system-release-cpe",
               "etc/debian_version",
               "etc/fedora-release",
               "etc/mandrake-release",
@@ -1287,11 +1394,7 @@
               "root/.ksh_history",
               "root/.xauthority",
               "usr/lib/security/mkuser.default",
-              "var/log/squirrelmail.log",
-              "var/log/apache2/squirrelmail.log",
-              "var/log/apache2/squirrelmail.err.log",
               "var/lib/squirrelmail/prefs/squirrelmail.log",
-              "var/log/mail.log",
               "etc/squirrelmail/apache.conf",
               "etc/squirrelmail/config_local.php",
               "etc/squirrelmail/default_pref",
@@ -1345,6 +1448,134 @@
               "etc/vmware-tools/config",
               "etc/vmware-tools/tpvmlp.conf",
               "etc/vmware-tools/vmware-tools-libraries.conf",
+              "var/log",
+              "var/log/sw-cp-server/error_log",
+              "var/log/sso/sso.log",
+              "var/log/dpkg.log",
+              "var/log/btmp",
+              "var/log/utmp",
+              "var/log/wtmp",
+              "var/log/mysql/mysql-bin.log",
+              "var/log/mysql/mysql-bin.index",
+              "var/log/mysql/data/mysql-bin.index",
+              "var/log/mysql.log",
+              "var/log/mysql.err",
+              "var/log/mysqlderror.log",
+              "var/log/mysql/mysql.log",
+              "var/log/mysql/mysql-slow.log",
+              "var/log/mysql-bin.index",
+              "var/log/data/mysql-bin.index",
+              "var/log/postgresql/postgresql.log",
+              "var/log/postgres/pg_backup.log",
+              "var/log/postgres/postgres.log",
+              "var/log/postgresql.log",
+              "var/log/pgsql/pgsql.log",
+              "var/log/postgresql/postgresql-8.1-main.log",
+              "var/log/postgresql/postgresql-8.3-main.log",
+              "var/log/postgresql/postgresql-8.4-main.log",
+              "var/log/postgresql/postgresql-9.0-main.log",
+              "var/log/postgresql/postgresql-9.1-main.log",
+              "var/log/pgsql8.log",
+              "var/log/postgresql/postgres.log",
+              "var/log/pgsql_log",
+              "var/log/postgresql/main.log",
+              "var/log/cron",
+              "var/log/postgres.log",
+              "var/log/proftpd",
+              "var/log/proftpd/xferlog.legacy",
+              "var/log/proftpd.access_log",
+              "var/log/proftpd.xferlog",
+              "var/log/vsftpd.log",
+              "var/log/xferlog",
+              "var/log/pure-ftpd/pure-ftpd.log",
+              "var/log/pureftpd.log",
+              "var/log/muddleftpd",
+              "var/log/muddleftpd.conf",
+              "var/log/ftp-proxy/ftp-proxy.log",
+              "var/log/ftp-proxy",
+              "var/log/ftplog",
+              "var/log/exim_mainlog",
+              "var/log/exim/mainlog",
+              "var/log/maillog",
+              "var/log/exim_paniclog",
+              "var/log/exim/paniclog",
+              "var/log/exim/rejectlog",
+              "var/log/exim_rejectlog",
+              "var/log/webmin/miniserv.log",
+              "var/log/httpd/access_log",
+              "var/log/httpd/error_log",
+              "var/log/httpd/access.log",
+              "var/log/httpd/error.log",
+              "var/log/apache/access_log",
+              "var/log/apache/access.log",
+              "var/log/apache/error_log",
+              "var/log/apache/error.log",
+              "var/log/apache2/access_log",
+              "var/log/apache2/access.log",
+              "var/log/apache2/error_log",
+              "var/log/apache2/error.log",
+              "var/log/access_log",
+              "var/log/access.log",
+              "var/log/error_log",
+              "var/log/error.log",
+              "var/log/tomcat6/catalina.out",
+              "var/log/lighttpd.error.log",
+              "var/log/lighttpd.access.log",
+              "var/logs/access.log",
+              "var/log/lighttpd/",
+              "var/log/lighttpd/error.log",
+              "var/log/lighttpd/access.www.log",
+              "var/log/lighttpd/error.www.log",
+              "var/log/lighttpd/access.log",
+              "var/log/lighttpd/{domain}/access.log",
+              "var/log/lighttpd/{domain}/error.log",
+              "var/log/nginx/access_log",
+              "var/log/nginx/error_log",
+              "var/log/nginx/access.log",
+              "var/log/nginx/error.log",
+              "var/log/nginx.access_log",
+              "var/log/nginx.error_log",
+              "var/log/samba/log.smbd",
+              "var/log/samba/log.nmbd",
+              "var/log/samba.log",
+              "var/log/samba.log1",
+              "var/log/samba.log2",
+              "var/log/log.smb",
+              "var/log/ipfw.log",
+              "var/log/ipfw",
+              "var/log/ipfw/ipfw.log",
+              "var/log/ipfw.today",
+              "var/log/poplog",
+              "var/log/authlog",
+              "var/log/news.all",
+              "var/log/news/news.all",
+              "var/log/news/news.crit",
+              "var/log/news/news.err",
+              "var/log/news/news.notice",
+              "var/log/news/suck.err",
+              "var/log/news/suck.notice",
+              "var/log/messages",
+              "var/log/messages.1",
+              "var/log/user.log",
+              "var/log/user.log.1",
+              "var/log/auth.log",
+              "var/log/pm-powersave.log",
+              "var/log/xorg.0.log",
+              "var/log/daemon.log",
+              "var/log/daemon.log.1",
+              "var/log/kern.log",
+              "var/log/kern.log.1",
+              "var/log/mail.err",
+              "var/log/mail.info",
+              "var/log/mail.warn",
+              "var/log/ufw.log",
+              "var/log/boot.log",
+              "var/log/syslog",
+              "var/log/syslog.1",
+              "var/log/squirrelmail.log",
+              "var/log/apache2/squirrelmail.log",
+              "var/log/apache2/squirrelmail.err.log",
+              "var/log/mail.log",
               "var/log/vmware/hostd.log",
               "var/log/vmware/hostd-1.log",
               "/wp-config.php",
@@ -1369,8 +1600,8 @@
               "/web.config",
               "includes/config.php",
               "includes/configure.php",
-              "config.inc.php",
-              "localsettings.php",
+              "/config.inc.php",
+              "/localsettings.php",
               "inc/config.php",
               "typo3conf/localconf.php",
               "config/app.php",
@@ -1397,7 +1628,122 @@
               "/ormconfig.json",
               "/tsconfig.json",
               "/webpack.config.js",
-              "/yarn.lock"
+              "/yarn.lock",
+              "proc/0",
+              "proc/1",
+              "proc/2",
+              "proc/3",
+              "proc/4",
+              "proc/5",
+              "proc/6",
+              "proc/7",
+              "proc/8",
+              "proc/9",
+              "proc/acpi",
+              "proc/asound",
+              "proc/bootconfig",
+              "proc/buddyinfo",
+              "proc/bus",
+              "proc/cgroups",
+              "proc/cmdline",
+              "proc/config.gz",
+              "proc/consoles",
+              "proc/cpuinfo",
+              "proc/crypto",
+              "proc/devices",
+              "proc/diskstats",
+              "proc/dma",
+              "proc/docker",
+              "proc/driver",
+              "proc/dynamic_debug",
+              "proc/execdomains",
+              "proc/fb",
+              "proc/filesystems",
+              "proc/fs",
+              "proc/interrupts",
+              "proc/iomem",
+              "proc/ioports",
+              "proc/ipmi",
+              "proc/irq",
+              "proc/kallsyms",
+              "proc/kcore",
+              "proc/keys",
+              "proc/keys",
+              "proc/key-users",
+              "proc/kmsg",
+              "proc/kpagecgroup",
+              "proc/kpagecount",
+              "proc/kpageflags",
+              "proc/latency_stats",
+              "proc/loadavg",
+              "proc/locks",
+              "proc/mdstat",
+              "proc/meminfo",
+              "proc/misc",
+              "proc/modules",
+              "proc/mounts",
+              "proc/mpt",
+              "proc/mtd",
+              "proc/mtrr",
+              "proc/net",
+              "proc/net/tcp",
+              "proc/net/udp",
+              "proc/pagetypeinfo",
+              "proc/partitions",
+              "proc/pressure",
+              "proc/sched_debug",
+              "proc/schedstat",
+              "proc/scsi",
+              "proc/self",
+              "proc/self/cmdline",
+              "proc/self/environ",
+              "proc/self/fd/0",
+              "proc/self/fd/1",
+              "proc/self/fd/10",
+              "proc/self/fd/11",
+              "proc/self/fd/12",
+              "proc/self/fd/13",
+              "proc/self/fd/14",
+              "proc/self/fd/15",
+              "proc/self/fd/2",
+              "proc/self/fd/3",
+              "proc/self/fd/4",
+              "proc/self/fd/5",
+              "proc/self/fd/6",
+              "proc/self/fd/7",
+              "proc/self/fd/8",
+              "proc/self/fd/9",
+              "proc/self/mounts",
+              "proc/self/stat",
+              "proc/self/status",
+              "proc/slabinfo",
+              "proc/softirqs",
+              "proc/stat",
+              "proc/swaps",
+              "proc/sys",
+              "proc/sysrq-trigger",
+              "proc/sysvipc",
+              "proc/thread-self",
+              "proc/timer_list",
+              "proc/timer_stats",
+              "proc/tty",
+              "proc/uptime",
+              "proc/version",
+              "proc/version_signature",
+              "proc/vmallocinfo",
+              "proc/vmstat",
+              "proc/zoneinfo",
+              "sys/block",
+              "sys/bus",
+              "sys/class",
+              "sys/dev",
+              "sys/devices",
+              "sys/firmware",
+              "sys/fs",
+              "sys/hypervisor",
+              "sys/kernel",
+              "sys/module",
+              "sys/power"
             ]
           },
           "operator": "phrase_match"
@@ -1511,103 +1857,456 @@
               "$ostype",
               "$path",
               "$pwd",
+              "dev/fd/",
+              "dev/null",
+              "dev/stderr",
+              "dev/stdin",
+              "dev/stdout",
+              "dev/tcp/",
+              "dev/udp/",
+              "dev/zero",
+              "etc/group",
+              "etc/master.passwd",
+              "etc/passwd",
+              "etc/pwd.db",
+              "etc/shadow",
+              "etc/shells",
+              "etc/spwd.db",
+              "proc/self/",
+              "bin/7z",
+              "bin/7za",
+              "bin/7zr",
+              "bin/ab",
+              "bin/agetty",
+              "bin/ansible-playbook",
+              "bin/apt",
+              "bin/apt-get",
+              "bin/ar",
+              "bin/aria2c",
+              "bin/arj",
+              "bin/arp",
+              "bin/as",
+              "bin/ascii-xfr",
+              "bin/ascii85",
+              "bin/ash",
+              "bin/aspell",
+              "bin/at",
+              "bin/atobm",
+              "bin/awk",
+              "bin/base32",
+              "bin/base64",
+              "bin/basenc",
               "bin/bash",
+              "bin/bpftrace",
+              "bin/bridge",
+              "bin/bundler",
+              "bin/bunzip2",
+              "bin/busctl",
+              "bin/busybox",
+              "bin/byebug",
+              "bin/bzcat",
+              "bin/bzcmp",
+              "bin/bzdiff",
+              "bin/bzegrep",
+              "bin/bzexe",
+              "bin/bzfgrep",
+              "bin/bzgrep",
+              "bin/bzip2",
+              "bin/bzip2recover",
+              "bin/bzless",
+              "bin/bzmore",
+              "bin/bzz",
+              "bin/c89",
+              "bin/c99",
+              "bin/cancel",
+              "bin/capsh",
               "bin/cat",
+              "bin/cc",
+              "bin/certbot",
+              "bin/check_by_ssh",
+              "bin/check_cups",
+              "bin/check_log",
+              "bin/check_memory",
+              "bin/check_raid",
+              "bin/check_ssl_cert",
+              "bin/check_statusfile",
+              "bin/chmod",
+              "bin/choom",
+              "bin/chown",
+              "bin/chroot",
+              "bin/clang",
+              "bin/clang++",
+              "bin/cmp",
+              "bin/cobc",
+              "bin/column",
+              "bin/comm",
+              "bin/composer",
+              "bin/core_perl/zipdetails",
+              "bin/cowsay",
+              "bin/cowthink",
+              "bin/cp",
+              "bin/cpan",
+              "bin/cpio",
+              "bin/cpulimit",
+              "bin/crash",
+              "bin/crontab",
               "bin/csh",
+              "bin/csplit",
+              "bin/csvtool",
+              "bin/cupsfilter",
+              "bin/curl",
+              "bin/cut",
               "bin/dash",
+              "bin/date",
+              "bin/dd",
+              "bin/dev/fd/",
+              "bin/dev/null",
+              "bin/dev/stderr",
+              "bin/dev/stdin",
+              "bin/dev/stdout",
+              "bin/dev/tcp/",
+              "bin/dev/udp/",
+              "bin/dev/zero",
+              "bin/dialog",
+              "bin/diff",
+              "bin/dig",
+              "bin/dmesg",
+              "bin/dmidecode",
+              "bin/dmsetup",
+              "bin/dnf",
+              "bin/docker",
+              "bin/dosbox",
+              "bin/dpkg",
               "bin/du",
+              "bin/dvips",
+              "bin/easy_install",
+              "bin/eb",
               "bin/echo",
+              "bin/ed",
+              "bin/efax",
+              "bin/emacs",
+              "bin/env",
+              "bin/eqn",
+              "bin/es",
+              "bin/esh",
+              "bin/etc/group",
+              "bin/etc/master.passwd",
+              "bin/etc/passwd",
+              "bin/etc/pwd.db",
+              "bin/etc/shadow",
+              "bin/etc/shells",
+              "bin/etc/spwd.db",
+              "bin/ex",
+              "bin/exiftool",
+              "bin/expand",
+              "bin/expect",
+              "bin/expr",
+              "bin/facter",
+              "bin/fetch",
+              "bin/file",
+              "bin/find",
+              "bin/finger",
+              "bin/fish",
+              "bin/flock",
+              "bin/fmt",
+              "bin/fold",
+              "bin/fping",
+              "bin/ftp",
+              "bin/gawk",
+              "bin/gcc",
+              "bin/gcore",
+              "bin/gdb",
+              "bin/gem",
+              "bin/genie",
+              "bin/genisoimage",
+              "bin/ghc",
+              "bin/ghci",
+              "bin/gimp",
+              "bin/ginsh",
+              "bin/git",
+              "bin/grc",
               "bin/grep",
+              "bin/gtester",
+              "bin/gunzip",
+              "bin/gzexe",
+              "bin/gzip",
+              "bin/hd",
+              "bin/head",
+              "bin/hexdump",
+              "bin/highlight",
+              "bin/hping3",
+              "bin/iconv",
+              "bin/id",
+              "bin/iftop",
+              "bin/install",
+              "bin/ionice",
+              "bin/ip",
+              "bin/irb",
+              "bin/ispell",
+              "bin/jjs",
+              "bin/join",
+              "bin/journalctl",
+              "bin/jq",
+              "bin/jrunscript",
+              "bin/knife",
+              "bin/ksh",
+              "bin/ksshell",
+              "bin/latex",
+              "bin/ld",
+              "bin/ldconfig",
               "bin/less",
+              "bin/lftp",
+              "bin/ln",
+              "bin/loginctl",
+              "bin/logsave",
+              "bin/look",
+              "bin/lp",
               "bin/ls",
+              "bin/ltrace",
+              "bin/lua",
+              "bin/lualatex",
+              "bin/luatex",
+              "bin/lwp-download",
+              "bin/lwp-request",
+              "bin/lz",
+              "bin/lz4",
+              "bin/lz4c",
+              "bin/lz4cat",
+              "bin/lzcat",
+              "bin/lzcmp",
+              "bin/lzdiff",
+              "bin/lzegrep",
+              "bin/lzfgrep",
+              "bin/lzgrep",
+              "bin/lzless",
+              "bin/lzma",
+              "bin/lzmadec",
+              "bin/lzmainfo",
+              "bin/lzmore",
+              "bin/mail",
+              "bin/make",
+              "bin/man",
+              "bin/mawk",
+              "bin/mkfifo",
               "bin/mknod",
               "bin/more",
+              "bin/mosquitto",
+              "bin/mount",
+              "bin/msgattrib",
+              "bin/msgcat",
+              "bin/msgconv",
+              "bin/msgfilter",
+              "bin/msgmerge",
+              "bin/msguniq",
+              "bin/mtr",
+              "bin/mv",
+              "bin/mysql",
+              "bin/nano",
+              "bin/nasm",
+              "bin/nawk",
               "bin/nc",
+              "bin/ncat",
+              "bin/neofetch",
+              "bin/nice",
+              "bin/nl",
+              "bin/nm",
+              "bin/nmap",
+              "bin/node",
+              "bin/nohup",
+              "bin/npm",
+              "bin/nroff",
+              "bin/nsenter",
+              "bin/octave",
+              "bin/od",
+              "bin/openssl",
+              "bin/openvpn",
+              "bin/openvt",
+              "bin/opkg",
+              "bin/paste",
+              "bin/pax",
+              "bin/pdb",
+              "bin/pdflatex",
+              "bin/pdftex",
+              "bin/pdksh",
+              "bin/perf",
+              "bin/perl",
+              "bin/pg",
+              "bin/php",
+              "bin/php-cgi",
+              "bin/php5",
+              "bin/php7",
+              "bin/pic",
+              "bin/pico",
+              "bin/pidstat",
+              "bin/pigz",
+              "bin/pip",
+              "bin/pkexec",
+              "bin/pkg",
+              "bin/pr",
+              "bin/printf",
+              "bin/proc/self/",
+              "bin/pry",
               "bin/ps",
+              "bin/psed",
+              "bin/psftp",
+              "bin/psql",
+              "bin/ptx",
+              "bin/puppet",
+              "bin/pxz",
+              "bin/python",
+              "bin/python2",
+              "bin/python3",
+              "bin/rake",
               "bin/rbash",
+              "bin/rc",
+              "bin/readelf",
+              "bin/red",
+              "bin/redcarpet",
+              "bin/restic",
+              "bin/rev",
+              "bin/rlogin",
+              "bin/rlwrap",
+              "bin/rpm",
+              "bin/rpmquery",
+              "bin/rsync",
+              "bin/ruby",
+              "bin/run-mailcap",
+              "bin/run-parts",
+              "bin/rview",
+              "bin/rvim",
+              "bin/sash",
+              "bin/sbin/capsh",
+              "bin/sbin/logsave",
+              "bin/sbin/service",
+              "bin/sbin/start-stop-daemon",
+              "bin/scp",
+              "bin/screen",
+              "bin/script",
+              "bin/sed",
+              "bin/service",
+              "bin/setarch",
+              "bin/sftp",
+              "bin/sg",
               "bin/sh",
+              "bin/shuf",
               "bin/sleep",
+              "bin/slsh",
+              "bin/smbclient",
+              "bin/snap",
+              "bin/socat",
+              "bin/soelim",
+              "bin/sort",
+              "bin/split",
+              "bin/sqlite3",
+              "bin/ss",
+              "bin/ssh",
+              "bin/ssh-keygen",
+              "bin/ssh-keyscan",
+              "bin/sshpass",
+              "bin/start-stop-daemon",
+              "bin/stdbuf",
+              "bin/strace",
+              "bin/strings",
               "bin/su",
+              "bin/sysctl",
+              "bin/systemctl",
+              "bin/systemd-resolve",
+              "bin/tac",
+              "bin/tail",
+              "bin/tar",
+              "bin/task",
+              "bin/taskset",
+              "bin/tbl",
+              "bin/tclsh",
+              "bin/tcpdump",
               "bin/tcsh",
+              "bin/tee",
+              "bin/telnet",
+              "bin/tex",
+              "bin/tftp",
+              "bin/tic",
+              "bin/time",
+              "bin/timedatectl",
+              "bin/timeout",
+              "bin/tmux",
+              "bin/top",
+              "bin/troff",
+              "bin/tshark",
+              "bin/ul",
               "bin/uname",
-              "dev/fd/",
-              "dev/null",
-              "dev/stderr",
-              "dev/stdin",
-              "dev/stdout",
-              "dev/tcp/",
-              "dev/udp/",
-              "dev/zero",
-              "etc/group",
-              "etc/master.passwd",
-              "etc/passwd",
-              "etc/pwd.db",
-              "etc/shadow",
-              "etc/shells",
-              "etc/spwd.db",
-              "proc/self/",
-              "usr/bin/awk",
-              "usr/bin/base64",
-              "usr/bin/cat",
-              "usr/bin/cc",
-              "usr/bin/clang",
-              "usr/bin/clang++",
-              "usr/bin/curl",
-              "usr/bin/diff",
-              "usr/bin/env",
-              "usr/bin/fetch",
-              "usr/bin/file",
-              "usr/bin/find",
-              "usr/bin/ftp",
-              "usr/bin/gawk",
-              "usr/bin/gcc",
-              "usr/bin/head",
-              "usr/bin/hexdump",
-              "usr/bin/id",
-              "usr/bin/less",
-              "usr/bin/ln",
-              "usr/bin/mkfifo",
-              "usr/bin/more",
-              "usr/bin/nc",
-              "usr/bin/ncat",
-              "usr/bin/nice",
-              "usr/bin/nmap",
-              "usr/bin/perl",
-              "usr/bin/php",
-              "usr/bin/php5",
-              "usr/bin/php7",
-              "usr/bin/php-cgi",
-              "usr/bin/printf",
-              "usr/bin/psed",
-              "usr/bin/python",
-              "usr/bin/python2",
-              "usr/bin/python3",
-              "usr/bin/ruby",
-              "usr/bin/sed",
-              "usr/bin/socat",
-              "usr/bin/tail",
-              "usr/bin/tee",
-              "usr/bin/telnet",
-              "usr/bin/top",
-              "usr/bin/uname",
-              "usr/bin/wget",
-              "usr/bin/who",
-              "usr/bin/whoami",
-              "usr/bin/xargs",
-              "usr/bin/xxd",
-              "usr/bin/yes",
-              "usr/local/bin/bash",
-              "usr/local/bin/curl",
-              "usr/local/bin/ncat",
-              "usr/local/bin/nmap",
-              "usr/local/bin/perl",
-              "usr/local/bin/php",
-              "usr/local/bin/python",
-              "usr/local/bin/python2",
-              "usr/local/bin/python3",
-              "usr/local/bin/rbash",
-              "usr/local/bin/ruby",
-              "usr/local/bin/wget"
+              "bin/uncompress",
+              "bin/unexpand",
+              "bin/uniq",
+              "bin/unlz4",
+              "bin/unlzma",
+              "bin/unpigz",
+              "bin/unrar",
+              "bin/unshare",
+              "bin/unxz",
+              "bin/unzip",
+              "bin/unzstd",
+              "bin/update-alternatives",
+              "bin/uudecode",
+              "bin/uuencode",
+              "bin/valgrind",
+              "bin/vi",
+              "bin/view",
+              "bin/vigr",
+              "bin/vim",
+              "bin/vimdiff",
+              "bin/vipw",
+              "bin/virsh",
+              "bin/volatility",
+              "bin/wall",
+              "bin/watch",
+              "bin/wc",
+              "bin/wget",
+              "bin/whiptail",
+              "bin/who",
+              "bin/whoami",
+              "bin/whois",
+              "bin/wireshark",
+              "bin/wish",
+              "bin/xargs",
+              "bin/xelatex",
+              "bin/xetex",
+              "bin/xmodmap",
+              "bin/xmore",
+              "bin/xpad",
+              "bin/xxd",
+              "bin/xz",
+              "bin/xzcat",
+              "bin/xzcmp",
+              "bin/xzdec",
+              "bin/xzdiff",
+              "bin/xzegrep",
+              "bin/xzfgrep",
+              "bin/xzgrep",
+              "bin/xzless",
+              "bin/xzmore",
+              "bin/yarn",
+              "bin/yelp",
+              "bin/yes",
+              "bin/yum",
+              "bin/zathura",
+              "bin/zip",
+              "bin/zipcloak",
+              "bin/zipcmp",
+              "bin/zipdetails",
+              "bin/zipgrep",
+              "bin/zipinfo",
+              "bin/zipmerge",
+              "bin/zipnote",
+              "bin/zipsplit",
+              "bin/ziptool",
+              "bin/zsh",
+              "bin/zsoelim",
+              "bin/zstd",
+              "bin/zstdcat",
+              "bin/zstdgrep",
+              "bin/zstdless",
+              "bin/zstdmt",
+              "bin/zypper"
             ]
           },
           "operator": "phrase_match"
@@ -1791,14 +2490,6 @@
             ],
             "list": [
               "$globals",
-              "$http_cookie_vars",
-              "$http_env_vars",
-              "$http_get_vars",
-              "$http_post_files",
-              "$http_post_vars",
-              "$http_raw_post_data",
-              "$http_request_vars",
-              "$http_server_vars",
               "$_cookie",
               "$_env",
               "$_files",
@@ -1808,7 +2499,17 @@
               "$_server",
               "$_session",
               "$argc",
-              "$argv"
+              "$argv",
+              "$http_\\u200bresponse_\\u200bheader",
+              "$php_\\u200berrormsg",
+              "$http_cookie_vars",
+              "$http_env_vars",
+              "$http_get_vars",
+              "$http_post_files",
+              "$http_post_vars",
+              "$http_raw_post_data",
+              "$http_request_vars",
+              "$http_server_vars"
             ]
           },
           "operator": "phrase_match"
@@ -1993,7 +2694,7 @@
                 "address": "grpc.server.request.message"
               }
             ],
-            "regex": "\\b(?:s(?:e(?:t(?:_(?:e(?:xception|rror)_handler|magic_quotes_runtime|include_path)|defaultstub)|ssion_s(?:et_save_handler|tart))|qlite_(?:(?:(?:unbuffered|single|array)_)?query|create_(?:aggregate|function)|p?open|exec)|tr(?:eam_(?:context_create|socket_client)|ipc?slashes|rev)|implexml_load_(?:string|file)|ocket_c(?:onnect|reate)|h(?:ow_sourc|a1_fil)e|pl_autoload_register|ystem)|p(?:r(?:eg_(?:replace(?:_callback(?:_array)?)?|match(?:_all)?|split)|oc_(?:(?:terminat|clos|nic)e|get_status|open)|int_r)|o(?:six_(?:get(?:(?:e[gu]|g)id|login|pwnam)|mk(?:fifo|nod)|ttyname|kill)|pen)|hp(?:_(?:strip_whitespac|unam)e|version|info)|g_(?:(?:execut|prepar)e|connect|query)|a(?:rse_(?:ini_file|str)|ssthru)|utenv)|r(?:unkit_(?:function_(?:re(?:defin|nam)e|copy|add)|method_(?:re(?:defin|nam)e|copy|add)|constant_(?:redefine|add))|e(?:(?:gister_(?:shutdown|tick)|name)_function|ad(?:(?:gz)?file|_exif_data|dir))|awurl(?:de|en)code)|i(?:mage(?:createfrom(?:(?:jpe|pn)g|x[bp]m|wbmp|gif)|(?:jpe|pn)g|g(?:d2?|if)|2?wbmp|xbm)|s_(?:(?:(?:execut|write?|read)ab|fi)le|dir)|ni_(?:get(?:_all)?|set)|terator_apply|ptcembed)|g(?:et(?:_(?:c(?:urrent_use|fg_va)r|meta_tags)|my(?:[gpu]id|inode)|(?:lastmo|cw)d|imagesize|env)|z(?:(?:(?:defla|wri)t|encod|fil)e|compress|open|read)|lob)|a(?:rray_(?:u(?:intersect(?:_u?assoc)?|diff(?:_u?assoc)?)|intersect_u(?:assoc|key)|diff_u(?:assoc|key)|filter|reduce|map)|ssert(?:_options)?)|h(?:tml(?:specialchars(?:_decode)?|_entity_decode|entities)|(?:ash(?:_(?:update|hmac))?|ighlight)_file|e(?:ader_register_callback|x2bin))|f(?:i(?:le(?:(?:[acm]tim|inod)e|(?:_exist|perm)s|group)?|nfo_open)|tp_(?:nb_(?:ge|pu)|connec|ge|pu)t|(?:unction_exis|pu)ts|write|open)|o(?:b_(?:get_(?:c(?:ontents|lean)|flush)|end_(?:clean|flush)|clean|flush|start)|dbc_(?:result(?:_all)?|exec(?:ute)?|connect)|pendir)|m(?:b_(?:ereg(?:_(?:replace(?:_callback)?|match)|i(?:_replace)?)?|parse_str)|(?:ove_uploaded|d5)_file|ethod_exists|ysql_query|kdir)|e(?:x(?:if_(?:t(?:humbnail|agname)|imagetype|read_data)|ec)|scapeshell(?:arg|cmd)|rror_reporting|val)|c(?:url_(?:file_create|exec|init)|onvert_uuencode|reate_function|hr)|u(?:n(?:serialize|pack)|rl(?:de|en)code|[ak]?sort)|(?:json_(?:de|en)cod|debug_backtrac|tmpfil)e|b(?:(?:son_(?:de|en)|ase64_en)code|zopen)|var_dump)(?:\\s|/\\*.*\\*/|//.*|#.*)*\\(.*\\)",
+            "regex": "\\b(?:s(?:e(?:t(?:_(?:e(?:xception|rror)_handler|magic_quotes_runtime|include_path)|defaultstub)|ssion_s(?:et_save_handler|tart))|qlite_(?:(?:(?:unbuffered|single|array)_)?query|create_(?:aggregate|function)|p?open|exec)|tr(?:eam_(?:context_create|socket_client)|ipc?slashes|rev)|implexml_load_(?:string|file)|ocket_c(?:onnect|reate)|h(?:ow_sourc|a1_fil)e|pl_autoload_register|ystem)|p(?:r(?:eg_(?:replace(?:_callback(?:_array)?)?|match(?:_all)?|split)|oc_(?:(?:terminat|clos|nic)e|get_status|open)|int_r)|o(?:six_(?:get(?:(?:e[gu]|g)id|login|pwnam)|mk(?:fifo|nod)|ttyname|kill)|pen)|hp(?:_(?:strip_whitespac|unam)e|version|info)|g_(?:(?:execut|prepar)e|connect|query)|a(?:rse_(?:ini_file|str)|ssthru)|utenv)|r(?:unkit_(?:function_(?:re(?:defin|nam)e|copy|add)|method_(?:re(?:defin|nam)e|copy|add)|constant_(?:redefine|add))|e(?:(?:gister_(?:shutdown|tick)|name)_function|ad(?:(?:gz)?file|_exif_data|dir))|awurl(?:de|en)code)|i(?:mage(?:createfrom(?:(?:jpe|pn)g|x[bp]m|wbmp|gif)|(?:jpe|pn)g|g(?:d2?|if)|2?wbmp|xbm)|s_(?:(?:(?:execut|write?|read)ab|fi)le|dir)|ni_(?:get(?:_all)?|set)|terator_apply|ptcembed)|g(?:et(?:_(?:c(?:urrent_use|fg_va)r|meta_tags)|my(?:[gpu]id|inode)|(?:lastmo|cw)d|imagesize|env)|z(?:(?:(?:defla|wri)t|encod|fil)e|compress|open|read)|lob)|a(?:rray_(?:u(?:intersect(?:_u?assoc)?|diff(?:_u?assoc)?)|intersect_u(?:assoc|key)|diff_u(?:assoc|key)|filter|reduce|map)|ssert(?:_options)?|lert|tob)|h(?:tml(?:specialchars(?:_decode)?|_entity_decode|entities)|(?:ash(?:_(?:update|hmac))?|ighlight)_file|e(?:ader_register_callback|x2bin))|f(?:i(?:le(?:(?:[acm]tim|inod)e|(?:_exist|perm)s|group)?|nfo_open)|tp_(?:nb_(?:ge|pu)|connec|ge|pu)t|(?:unction_exis|pu)ts|write|open)|o(?:b_(?:get_(?:c(?:ontents|lean)|flush)|end_(?:clean|flush)|clean|flush|start)|dbc_(?:result(?:_all)?|exec(?:ute)?|connect)|pendir)|m(?:b_(?:ereg(?:_(?:replace(?:_callback)?|match)|i(?:_replace)?)?|parse_str)|(?:ove_uploaded|d5)_file|ethod_exists|ysql_query|kdir)|e(?:x(?:if_(?:t(?:humbnail|agname)|imagetype|read_data)|ec)|scapeshell(?:arg|cmd)|rror_reporting|val)|c(?:url_(?:file_create|exec|init)|onvert_uuencode|reate_function|hr)|u(?:n(?:serialize|pack)|rl(?:de|en)code|[ak]?sort)|b(?:(?:son_(?:de|en)|ase64_en)code|zopen|toa)|(?:json_(?:de|en)cod|debug_backtrac|tmpfil)e|var_dump)(?:\\s|/\\*.*\\*/|//.*|#.*|\\\")*\\(.*\\)",
             "options": {
               "min_length": 5
             }
@@ -2067,7 +2768,7 @@
                 "address": "grpc.server.request.message"
               }
             ],
-            "regex": "(?i:zlib|glob|phar|ssh2|rar|ogg|expect|zip)://",
+            "regex": "(?:(?:bzip|ssh)2|z(?:lib|ip)|(?:ph|r)ar|expect|glob|ogg)://",
             "options": {
               "case_sensitive": true,
               "min_length": 6
@@ -2082,7 +2783,7 @@
     },
     {
       "id": "crs-934-100",
-      "name": "Node.js Injection Attack",
+      "name": "Node.js Injection Attack 1/2",
       "tags": {
         "type": "js_code_injection",
         "crs_id": "934100",
@@ -2105,7 +2806,43 @@
                 "address": "grpc.server.request.message"
               }
             ],
-            "regex": "(?:(?:_(?:\\$\\$ND_FUNC\\$\\$_|_js_function)|(?:new\\s+Function|\\beval)\\s*\\(|String\\s*\\.\\s*fromCharCode|function\\s*\\(\\s*\\)\\s*{|this\\.constructor)|module\\.exports\\s*=)",
+            "regex": "\\b(?:(?:l(?:(?:utimes|chmod)(?:Sync)?|(?:stat|ink)Sync)|w(?:rite(?:(?:File|v)(?:Sync)?|Sync)|atchFile)|u(?:n(?:watchFile|linkSync)|times(?:Sync)?)|s(?:(?:ymlink|tat)Sync|pawn(?:File|Sync))|ex(?:ec(?:File(?:Sync)?|Sync)|istsSync)|a(?:ppendFile|ccess)(?:Sync)?|(?:Caveat|Inode)s|open(?:dir)?Sync|new\\s+Function|Availability|\\beval)\\s*\\(|m(?:ain(?:Module\\s*(?:\\W*\\s*(?:constructor|require)|\\[)|\\s*(?:\\W*\\s*(?:constructor|require)|\\[))|kd(?:temp(?:Sync)?|irSync)\\s*\\(|odule\\.exports\\s*=)|c(?:(?:(?:h(?:mod|own)|lose)Sync|reate(?:Write|Read)Stream|p(?:Sync)?)\\s*\\(|o(?:nstructor\\s*(?:\\W*\\s*_load|\\[)|pyFile(?:Sync)?\\s*\\())|f(?:(?:(?:s(?:(?:yncS)?|tatS)|datas(?:yncS)?)ync|ch(?:mod|own)(?:Sync)?)\\s*\\(|u(?:nction\\s*\\(\\s*\\)\\s*{|times(?:Sync)?\\s*\\())|r(?:e(?:(?:ad(?:(?:File|link|dir)?Sync|v(?:Sync)?)|nameSync)\\s*\\(|quire\\s*(?:\\W*\\s*main|\\[))|m(?:Sync)?\\s*\\()|process\\s*(?:\\W*\\s*(?:mainModule|binding)|\\[)|t(?:his\\.constructor|runcateSync\\s*\\()|_(?:\\$\\$ND_FUNC\\$\\$_|_js_function)|global\\s*(?:\\W*\\s*process|\\[)|String\\s*\\.\\s*fromCharCode|binding\\s*\\[)",
+            "options": {
+              "case_sensitive": true,
+              "min_length": 3
+            }
+          },
+          "operator": "match_regex"
+        }
+      ],
+      "transformers": []
+    },
+    {
+      "id": "crs-934-101",
+      "name": "Node.js Injection Attack 2/2",
+      "tags": {
+        "type": "js_code_injection",
+        "crs_id": "934101",
+        "category": "attack_attempt"
+      },
+      "conditions": [
+        {
+          "parameters": {
+            "inputs": [
+              {
+                "address": "server.request.query"
+              },
+              {
+                "address": "server.request.body"
+              },
+              {
+                "address": "server.request.path_params"
+              },
+              {
+                "address": "grpc.server.request.message"
+              }
+            ],
+            "regex": "\\b(?:w(?:atch|rite)|(?:spaw|ope)n|exists|close|fork|read)\\s*\\(",
             "options": {
               "case_sensitive": true,
               "min_length": 5
@@ -2247,7 +2984,7 @@
                 "address": "grpc.server.request.message"
               }
             ],
-            "regex": "[\\s\\\"'`;\\/0-9=\\x0B\\x09\\x0C\\x3B\\x2C\\x28\\x3B]on[a-zA-Z]{3,25}[\\s\\x0B\\x09\\x0C\\x3B\\x2C\\x28\\x3B]*?=[^=]",
+            "regex": "[\\s\\\"'`;\\/0-9=\\x0B\\x09\\x0C\\x3B\\x2C\\x28\\x3B]on(?:d(?:r(?:ag(?:en(?:ter|d)|leave|start|over)?|op)|urationchange|blclick)|s(?:e(?:ek(?:ing|ed)|arch|lect)|u(?:spend|bmit)|talled|croll|how)|m(?:ouse(?:(?:lea|mo)ve|o(?:ver|ut)|enter|down|up)|essage)|p(?:a(?:ge(?:hide|show)|(?:st|us)e)|lay(?:ing)?|rogress)|c(?:anplay(?:through)?|o(?:ntextmenu|py)|hange|lick|ut)|a(?:nimation(?:iteration|start|end)|(?:fterprin|bor)t)|t(?:o(?:uch(?:cancel|start|move|end)|ggle)|imeupdate)|f(?:ullscreen(?:change|error)|ocus(?:out|in)?)|(?:(?:volume|hash)chang|o(?:ff|n)lin)e|b(?:efore(?:unload|print)|lur)|load(?:ed(?:meta)?data|start)?|r(?:es(?:ize|et)|atechange)|key(?:press|down|up)|w(?:aiting|heel)|in(?:valid|put)|e(?:nded|rror)|unload)[\\s\\x0B\\x09\\x0C\\x3B\\x2C\\x28\\x3B]*?=[^=]",
             "options": {
               "min_length": 8
             }
@@ -2308,6 +3045,52 @@
         "removeNulls"
       ]
     },
+    {
+      "id": "crs-941-170",
+      "name": "NoScript XSS InjectionChecker: Attribute Injection",
+      "tags": {
+        "type": "xss",
+        "crs_id": "941170",
+        "category": "attack_attempt"
+      },
+      "conditions": [
+        {
+          "parameters": {
+            "inputs": [
+              {
+                "address": "server.request.headers.no_cookies",
+                "key_path": [
+                  "user-agent"
+                ]
+              },
+              {
+                "address": "server.request.headers.no_cookies",
+                "key_path": [
+                  "referer"
+                ]
+              },
+              {
+                "address": "server.request.query"
+              },
+              {
+                "address": "server.request.body"
+              },
+              {
+                "address": "server.request.path_params"
+              }
+            ],
+            "regex": "(?:\\W|^)(?:javascript:(?:[\\s\\S]+[=\\x5c\\(\\[\\.<]|[\\s\\S]*?(?:\\bname\\b|\\x5c[ux]\\d)))|@\\W*?i\\W*?m\\W*?p\\W*?o\\W*?r\\W*?t\\W*?(?:/\\*[\\s\\S]*?)?(?:[\\\"']|\\W*?u\\W*?r\\W*?l[\\s\\S]*?\\()|[^-]*?-\\W*?m\\W*?o\\W*?z\\W*?-\\W*?b\\W*?i\\W*?n\\W*?d\\W*?i\\W*?n\\W*?g[^:]*?:\\W*?u\\W*?r\\W*?l[\\s\\S]*?\\(",
+            "options": {
+              "min_length": 6
+            }
+          },
+          "operator": "match_regex"
+        }
+      ],
+      "transformers": [
+        "removeNulls"
+      ]
+    },
     {
       "id": "crs-941-180",
       "name": "Node-Validator Deny List Keywords",
@@ -2414,7 +3197,7 @@
                 "address": "grpc.server.request.message"
               }
             ],
-            "regex": "(?i:(?:j|&#x?0*(?:74|4A|106|6A);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:a|&#x?0*(?:65|41|97|61);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:v|&#x?0*(?:86|56|118|76);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:a|&#x?0*(?:65|41|97|61);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:s|&#x?0*(?:83|53|115|73);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:c|&#x?0*(?:67|43|99|63);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:r|&#x?0*(?:82|52|114|72);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:i|&#x?0*(?:73|49|105|69);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:p|&#x?0*(?:80|50|112|70);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:t|&#x?0*(?:84|54|116|74);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?::|&(?:#x?0*(?:58|3A);?|colon;)).)",
+            "regex": "(?i:(?:j|&#x?0*(?:74|4A|106|6A);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:a|&#x?0*(?:65|41|97|61);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:v|&#x?0*(?:86|56|118|76);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:a|&#x?0*(?:65|41|97|61);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:s|&#x?0*(?:83|53|115|73);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:c|&#x?0*(?:67|43|99|63);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:r|&#x?0*(?:82|52|114|72);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:i|&#x?0*(?:73|49|105|69);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:p|&#x?0*(?:80|50|112|70);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:t|&#x?0*(?:84|54|116|74);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?::|&(?:#x?0*(?:58|3A);?|colon;)).)",
             "options": {
               "case_sensitive": true,
               "min_length": 12
@@ -2762,11 +3545,11 @@
       "transformers": []
     },
     {
-      "id": "crs-942-100",
-      "name": "SQL Injection Attack Detected via libinjection",
+      "id": "crs-941-390",
+      "name": "Javascript method detected",
       "tags": {
-        "type": "sql_injection",
-        "crs_id": "942100",
+        "type": "xss",
+        "crs_id": "941390",
         "category": "attack_attempt"
       },
       "conditions": [
@@ -2785,21 +3568,24 @@
               {
                 "address": "grpc.server.request.message"
               }
-            ]
+            ],
+            "regex": "\\b(?i:eval|settimeout|setinterval|new\\s+Function)\\s*\\(",
+            "options": {
+              "case_sensitive": true,
+              "min_length": 5
+            }
           },
-          "operator": "is_sqli"
+          "operator": "match_regex"
         }
       ],
-      "transformers": [
-        "removeNulls"
-      ]
+      "transformers": []
     },
     {
-      "id": "crs-942-160",
-      "name": "Detects blind sqli tests using sleep() or benchmark()",
+      "id": "crs-942-100",
+      "name": "SQL Injection Attack Detected via libinjection",
       "tags": {
         "type": "sql_injection",
-        "crs_id": "942160",
+        "crs_id": "942100",
         "category": "attack_attempt"
       },
       "conditions": [
@@ -2818,24 +3604,21 @@
               {
                 "address": "grpc.server.request.message"
               }
-            ],
-            "regex": "(?i:sleep\\(\\s*?\\d*?\\s*?\\)|benchmark\\(.*?\\,.*?\\))",
-            "options": {
-              "case_sensitive": true,
-              "min_length": 7
-            }
+            ]
           },
-          "operator": "match_regex"
+          "operator": "is_sqli"
         }
       ],
-      "transformers": []
+      "transformers": [
+        "removeNulls"
+      ]
     },
     {
-      "id": "crs-942-190",
-      "name": "Detects MSSQL code execution and information gathering attempts",
+      "id": "crs-942-160",
+      "name": "Detects blind sqli tests using sleep() or benchmark()",
       "tags": {
         "type": "sql_injection",
-        "crs_id": "942190",
+        "crs_id": "942160",
         "category": "attack_attempt"
       },
       "conditions": [
@@ -2855,9 +3638,10 @@
                 "address": "grpc.server.request.message"
               }
             ],
-            "regex": "(?:\\b(?:(?:c(?:onnection_id|urrent_user)|database)\\s*?\\([^\\)]*?|u(?:nion(?:[\\w(?:\\s]*?select| select @)|ser\\s*?\\([^\\)]*?)|s(?:chema\\s*?\\([^\\)]*?|elect.*?\\w?user\\()|into[\\s+]+(?:dump|out)file\\s*?[\\\"'`]|from\\W+information_schema\\W|exec(?:ute)?\\s+master\\.)|[\\\"'`](?:;?\\s*?(?:union\\b\\s*?(?:(?:distin|sele)ct|all)|having|select)\\b\\s*?[^\\s]|\\s*?!\\s*?[\\\"'`\\w])|\\s*?exec(?:ute)?.*?\\Wxp_cmdshell|\\Wiif\\s*?\\()",
+            "regex": "(?i:sleep\\(\\s*?\\d*?\\s*?\\)|benchmark\\(.*?\\,.*?\\))",
             "options": {
-              "min_length": 3
+              "case_sensitive": true,
+              "min_length": 7
             }
           },
           "operator": "match_regex"
@@ -3031,10 +3815,10 @@
                 "address": "grpc.server.request.message"
               }
             ],
-            "regex": "(?i:(?:\\[\\$(?:ne|eq|lte?|gte?|n?in|mod|all|size|exists|type|slice|x?or|div|like|between|and)\\]))",
+            "regex": "(?i:(?:\\[?\\$(?:(?:s(?:lic|iz)|wher)e|e(?:lemMatch|xists|q)|n(?:o[rt]|in?|e)|l(?:ike|te?)|t(?:ext|ype)|a(?:ll|nd)|jsonSchema|between|regex|x?or|div|mod)\\]?))",
             "options": {
               "case_sensitive": true,
-              "min_length": 5
+              "min_length": 3
             }
           },
           "operator": "match_regex"
@@ -3338,6 +4122,45 @@
         "lowercase"
       ]
     },
+    {
+      "id": "crs-944-260",
+      "name": "Remote Command Execution: Malicious class-loading payload",
+      "tags": {
+        "type": "java_code_injection",
+        "crs_id": "944260",
+        "category": "attack_attempt"
+      },
+      "conditions": [
+        {
+          "parameters": {
+            "inputs": [
+              {
+                "address": "server.request.query"
+              },
+              {
+                "address": "server.request.body"
+              },
+              {
+                "address": "server.request.path_params"
+              },
+              {
+                "address": "server.request.headers.no_cookies"
+              },
+              {
+                "address": "grpc.server.request.message"
+              }
+            ],
+            "regex": "(?:class\\.module\\.classLoader\\.resources\\.context\\.parent\\.pipeline|springframework\\.context\\.support\\.FileSystemXmlApplicationContext)",
+            "options": {
+              "case_sensitive": true,
+              "min_length": 58
+            }
+          },
+          "operator": "match_regex"
+        }
+      ],
+      "transformers": []
+    },
     {
       "id": "dog-000-001",
       "name": "Look for Cassandra injections",
@@ -3383,6 +4206,9 @@
           "operator": "match_regex",
           "parameters": {
             "inputs": [
+              {
+                "address": "server.request.uri.raw"
+              },
               {
                 "address": "server.request.query"
               },
@@ -3469,6 +4295,74 @@
         "keys_only"
       ]
     },
+    {
+      "id": "dog-000-005",
+      "name": "Node.js: Prototype pollution through __proto__",
+      "tags": {
+        "type": "js_code_injection",
+        "category": "attack_attempt"
+      },
+      "conditions": [
+        {
+          "parameters": {
+            "inputs": [
+              {
+                "address": "server.request.query"
+              },
+              {
+                "address": "server.request.body"
+              }
+            ],
+            "regex": "^__proto__$"
+          },
+          "operator": "match_regex"
+        }
+      ],
+      "transformers": [
+        "keys_only"
+      ]
+    },
+    {
+      "id": "dog-000-006",
+      "name": "Node.js: Prototype pollution through constructor.prototype",
+      "tags": {
+        "type": "js_code_injection",
+        "category": "attack_attempt"
+      },
+      "conditions": [
+        {
+          "parameters": {
+            "inputs": [
+              {
+                "address": "server.request.query"
+              },
+              {
+                "address": "server.request.body"
+              }
+            ],
+            "regex": "^constructor$"
+          },
+          "operator": "match_regex"
+        },
+        {
+          "parameters": {
+            "inputs": [
+              {
+                "address": "server.request.query"
+              },
+              {
+                "address": "server.request.body"
+              }
+            ],
+            "regex": "^prototype$"
+          },
+          "operator": "match_regex"
+        }
+      ],
+      "transformers": [
+        "keys_only"
+      ]
+    },
     {
       "id": "nfd-000-001",
       "name": "Detect common directory discovery scans",
@@ -4346,7 +5240,7 @@
                 "address": "grpc.server.request.message"
               }
             ],
-            "regex": "^(http|https):\\/\\/(.*burpcollaborator\\.net|localtest\\.me|mail\\.ebc\\.apple\\.com|bugbounty\\.dod\\.network|.*\\.[nx]ip\\.io)"
+            "regex": "(http|https):\\/\\/(?:.*\\.)?(?:burpcollaborator\\.net|localtest\\.me|mail\\.ebc\\.apple\\.com|bugbounty\\.dod\\.network|.*\\.[nx]ip\\.io|oastify\\.com|oast\\.(?:pro|live|site|online|fun|me)|sslip\\.io|requestbin\\.com|requestbin\\.net|hookbin\\.com|webhook\\.site|canarytokens\\.com|interact\\.sh|ngrok\\.io|bugbounty\\.click)"
           },
           "operator": "match_regex"
         }
diff --git a/lib/datadog/appsec/assets/waf_rules/risky.json b/lib/datadog/appsec/assets/waf_rules/risky.json
index 89fc67eb179..1dcb2dea012 100644
--- a/lib/datadog/appsec/assets/waf_rules/risky.json
+++ b/lib/datadog/appsec/assets/waf_rules/risky.json
@@ -1,7 +1,7 @@
 {
   "version": "2.2",
   "metadata": {
-    "rules_version": "1.3.1"
+    "rules_version": "1.4.1"
   },
   "rules": [
     {
@@ -56,54 +56,54 @@
               }
             ],
             "list": [
-              ".htaccess",
-              ".htdigest",
-              ".htpasswd",
-              ".addressbook",
+              "/.htaccess",
+              "/.htdigest",
+              "/.htpasswd",
+              "/.addressbook",
               ".aptitude/config",
-              ".bash_config",
-              ".bash_history",
-              ".bash_logout",
-              ".bash_profile",
-              ".bashrc",
+              "/.bash_config",
+              "/.bash_history",
+              "/.bash_logout",
+              "/.bash_profile",
+              "/.bashrc",
               ".cache/notify-osd.log",
               ".config/odesk/odesk team.conf",
-              ".cshrc",
-              ".dockerignore",
+              "/.cshrc",
+              "/.dockerignore",
               ".drush/",
-              ".eslintignore",
-              ".fbcindex",
-              ".forward",
-              ".gitattributes",
-              ".gitconfig",
+              "/.eslintignore",
+              "/.fbcindex",
+              "/.forward",
+              "/.gitattributes",
+              "/.gitconfig",
               ".gnupg/",
               ".hplip/hplip.conf",
-              ".ksh_history",
-              ".lesshst",
+              "/.ksh_history",
+              "/.lesshst",
               ".lftp/",
-              ".lhistory",
-              ".lldb-history",
+              "/.lhistory",
+              "/.lldb-history",
               ".local/share/mc/",
-              ".lynx_cookies",
-              ".my.cnf",
-              ".mysql_history",
-              ".nano_history",
-              ".node_repl_history",
-              ".nsr",
-              ".pearrc",
-              ".php_history",
-              ".pinerc",
+              "/.lynx_cookies",
+              "/.my.cnf",
+              "/.mysql_history",
+              "/.nano_history",
+              "/.node_repl_history",
+              "/.nsr",
+              "/.pearrc",
+              "/.php_history",
+              "/.pinerc",
               ".pki/",
-              ".proclog",
-              ".procmailrc",
-              ".profile",
-              ".psql_history",
-              ".python_history",
-              ".rediscli_history",
-              ".rhistory",
-              ".rhosts",
-              ".sh_history",
-              ".sqlite_history",
+              "/.proclog",
+              "/.procmailrc",
+              "/.profile",
+              "/.psql_history",
+              "/.python_history",
+              "/.rediscli_history",
+              "/.rhistory",
+              "/.rhosts",
+              "/.sh_history",
+              "/.sqlite_history",
               ".ssh/authorized_keys",
               ".ssh/config",
               ".ssh/id_dsa",
@@ -117,17 +117,17 @@
               ".subversion/config",
               ".subversion/servers",
               ".tconn/tconn.conf",
-              ".tcshrc",
+              "/.tcshrc",
               ".vidalia/vidalia.conf",
-              ".viminfo",
-              ".vimrc",
-              ".www_acl",
-              ".wwwacl",
-              ".xauthority",
-              ".zhistory",
-              ".zshrc",
-              ".zsh_history",
-              ".nsconfig",
+              "/.viminfo",
+              "/.vimrc",
+              "/.www_acl",
+              "/.wwwacl",
+              "/.xauthority",
+              "/.zhistory",
+              "/.zshrc",
+              "/.zsh_history",
+              "/.nsconfig",
               "etc/redis.conf",
               "etc/redis-sentinel.conf",
               "etc/php.ini",
@@ -1082,30 +1082,30 @@
               "etc/vmware-tools/vmware-tools-libraries.conf",
               "var/log/vmware/hostd.log",
               "var/log/vmware/hostd-1.log",
-              "wp-config.php",
-              "wp-config.bak",
-              "wp-config.old",
-              "wp-config.temp",
-              "wp-config.tmp",
-              "wp-config.txt",
-              "config.yml",
-              "config_dev.yml",
-              "config_prod.yml",
-              "config_test.yml",
-              "parameters.yml",
-              "routing.yml",
-              "security.yml",
-              "services.yml",
+              "/wp-config.php",
+              "/wp-config.bak",
+              "/wp-config.old",
+              "/wp-config.temp",
+              "/wp-config.tmp",
+              "/wp-config.txt",
+              "/config.yml",
+              "/config_dev.yml",
+              "/config_prod.yml",
+              "/config_test.yml",
+              "/parameters.yml",
+              "/routing.yml",
+              "/security.yml",
+              "/services.yml",
               "sites/default/default.settings.php",
               "sites/default/settings.php",
               "sites/default/settings.local.php",
               "app/etc/local.xml",
-              "sftp-config.json",
-              "web.config",
+              "/sftp-config.json",
+              "/web.config",
               "includes/config.php",
               "includes/configure.php",
-              "config.inc.php",
-              "localsettings.php",
+              "/config.inc.php",
+              "/localsettings.php",
               "inc/config.php",
               "typo3conf/localconf.php",
               "config/app.php",
@@ -1125,14 +1125,14 @@
               "system32/config/system",
               "system32/config/software",
               "winnt/repair/sam._",
-              "package.json",
-              "package-lock.json",
-              "gruntfile.js",
-              "npm-debug.log",
-              "ormconfig.json",
-              "tsconfig.json",
-              "webpack.config.js",
-              "yarn.lock",
+              "/package.json",
+              "/package-lock.json",
+              "/gruntfile.js",
+              "/npm-debug.log",
+              "/ormconfig.json",
+              "/tsconfig.json",
+              "/webpack.config.js",
+              "/yarn.lock",
               "proc/0",
               "proc/1",
               "proc/2",
@@ -1313,7 +1313,7 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?:;|\\{|\\||\\|\\||&|&&|\\n|\\r|\\$\\(|\\$\\(\\(|`|\\${|<\\(|>\\(|\\(\\s*\\))\\s*(?:{|\\s*\\(\\s*|\\w+=(?:[^\\s]*|\\$.*|\\$.*|<.*|>.*|\\'.*\\'|\\\".*\\\")\\s+|!\\s*|\\$)*\\s*(?:'|\\\")*(?:[\\?\\*\\[\\]\\(\\)\\-\\|+\\w'\\\"\\./\\\\\\\\]+/)?[\\\\\\\\'\\\"]*(?:s[\\\\\\\\'\\\"]*(?:e[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*(?:(?:f[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*)?(?:\\s|<|>).*|e[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*v|s[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*d)|n[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*l|d[\\\\\\\\'\\\"]*(?:\\s|<|>).*)|h[\\\\\\\\'\\\"]*(?:\\.[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*b|u[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*w[\\\\\\\\'\\\"]*n|(?:\\s|<|>).*)|o[\\\\\\\\'\\\"]*(?:(?:u[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*e|r[\\\\\\\\'\\\"]*t)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|c[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t)|c[\\\\\\\\'\\\"]*(?:h[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*d|p[\\\\\\\\'\\\"]*(?:\\s|<|>).*)|t[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*g[\\\\\\\\'\\\"]*s|(?:l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*e|f[\\\\\\\\'\\\"]*t)[\\\\\\\\'\\\"]*p|y[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*l|u[\\\\\\\\'\\\"]*(?:(?:\\s|<|>).*|d[\\\\\\\\'\\\"]*o)|d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|s[\\\\\\\\'\\\"]*h|v[\\\\\\\\'\\\"]*n)|p[\\\\\\\\'\\\"]*(?:k[\\\\\\\\'\\\"]*(?:g(?:(?:[\\\\\\\\'\\\"]*_)?[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*o)?|e[\\\\\\\\'\\\"]*x[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*c|i[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*l)|t[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*r(?:[\\\\\\\\'\\\"]*(?:d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p))?|a[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*(?:\\s|<|>).*|s[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*w[\\\\\\\\'\\\"]*d)|r[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*(?:e[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*v|f[\\\\\\\\'\\\"]*(?:\\s|<|>).*)|y[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*n(?:[\\\\\\\\'\\\"]*(?:3(?:[\\\\\\\\'\\\"]*m)?|2))?|e[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*(?:l(?:[\\\\\\\\'\\\"]*(?:s[\\\\\\\\'\\\"]*h|5))?|m[\\\\\\\\'\\\"]*s)|(?:u[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*h|o[\\\\\\\\'\\\"]*p)[\\\\\\\\'\\\"]*d|f[\\\\\\\\'\\\"]*(?:(?:\\s|<|>).*|t[\\\\\\\\'\\\"]*p)|g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p|h[\\\\\\\\'\\\"]*p(?:[\\\\\\\\'\\\"]*[57])?|i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*g|s[\\\\\\\\'\\\"]*(?:\\s|<|>).*)|n[\\\\\\\\'\\\"]*(?:c[\\\\\\\\'\\\"]*(?:\\.[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*l|o[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*b[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*d)|(?:\\s|<|>).*|a[\\\\\\\\'\\\"]*t)|e[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*(?:k[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*-[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*p|(?:s[\\\\\\\\'\\\"]*t|c)[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t|(?:\\s|<|>).*)|s[\\\\\\\\'\\\"]*(?:l[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*k[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*p|t[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t)|(?:a[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*o|i[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*e)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|(?:o[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*u|m[\\\\\\\\'\\\"]*a)[\\\\\\\\'\\\"]*p|p[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*g)|r[\\\\\\\\'\\\"]*(?:e[\\\\\\\\'\\\"]*(?:(?:p[\\\\\\\\'\\\"]*(?:l[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*e|e[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t)|n[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*e)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|a[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*h)|m[\\\\\\\\'\\\"]*(?:(?:d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*)?(?:\\s|<|>).*|u[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*r)|u[\\\\\\\\'\\\"]*b[\\\\\\\\'\\\"]*y(?:[\\\\\\\\'\\\"]*(?:1(?:[\\\\\\\\'\\\"]*[89])?|2[\\\\\\\\'\\\"]*[012]))?|(?:c[\\\\\\\\'\\\"]*p|p[\\\\\\\\'\\\"]*m)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|a[\\\\\\\\'\\\"]*(?:r[\\\\\\\\'\\\"]*(?:\\s|<|>).*|k[\\\\\\\\'\\\"]*u)|n[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*o|o[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*e|s[\\\\\\\\'\\\"]*y[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*c)|t[\\\\\\\\'\\\"]*(?:c[\\\\\\\\'\\\"]*(?:p[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*e|i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*g)|s[\\\\\\\\'\\\"]*h)|r[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*e(?:[\\\\\\\\'\\\"]*6)?|e[\\\\\\\\'\\\"]*(?:l[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*t|e[\\\\\\\\'\\\"]*(?:\\s|<|>).*)|i[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*(?:o[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*t|(?:\\s|<|>).*)|a[\\\\\\\\'\\\"]*(?:i[\\\\\\\\'\\\"]*l(?:[\\\\\\\\'\\\"]*f)?|r[\\\\\\\\'\\\"]*(?:\\s|<|>).*)|o[\\\\\\\\'\\\"]*(?:u[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*(?:\\s|<|>).*|p))|u[\\\\\\\\'\\\"]*(?:n[\\\\\\\\'\\\"]*(?:l[\\\\\\\\'\\\"]*(?:i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*k[\\\\\\\\'\\\"]*(?:\\s|<|>).*|z[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*a)|c[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s|a[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*e|r[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*r|s[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*t|z[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*p|x[\\\\\\\\'\\\"]*z)|s[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*(?:(?:a[\\\\\\\\'\\\"]*d|m[\\\\\\\\'\\\"]*o)[\\\\\\\\'\\\"]*d|d[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*l)|l[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*(?:\\s|<|>).*)|m[\\\\\\\\'\\\"]*(?:y[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*q[\\\\\\\\'\\\"]*l(?:[\\\\\\\\'\\\"]*(?:d[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*p(?:[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*w)?|h[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*y|a[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n|s[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*w))?|(?:(?:o[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*n|u[\\\\\\\\'\\\"]*t)[\\\\\\\\'\\\"]*t|v)[\\\\\\\\'\\\"]*(?:\\s|<|>).*)|x[\\\\\\\\'\\\"]*(?:z[\\\\\\\\'\\\"]*(?:(?:[ef][\\\\\\\\'\\\"]*)?g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p|d[\\\\\\\\'\\\"]*(?:i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|e[\\\\\\\\'\\\"]*c)|c[\\\\\\\\'\\\"]*(?:a[\\\\\\\\'\\\"]*t|m[\\\\\\\\'\\\"]*p)|l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s|m[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e|(?:\\s|<|>).*)|a[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*g[\\\\\\\\'\\\"]*s|t[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*m|x[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*(?:\\s|<|>).*)|z[\\\\\\\\'\\\"]*(?:(?:[ef][\\\\\\\\'\\\"]*)?g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p|c[\\\\\\\\'\\\"]*(?:a[\\\\\\\\'\\\"]*t|m[\\\\\\\\'\\\"]*p)|d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|i[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*(?:\\s|<|>).*|l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s|m[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e|r[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*n|s[\\\\\\\\'\\\"]*h)|o[\\\\\\\\'\\\"]*(?:p[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*l|n[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*r)|w[\\\\\\\\'\\\"]*(?:h[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*(?:a[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*i|(?:\\s|<|>).*)|g[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*t|3[\\\\\\\\'\\\"]*m)|v[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*(?:m[\\\\\\\\'\\\"]*(?:\\s|<|>).*|g[\\\\\\\\'\\\"]*r|p[\\\\\\\\'\\\"]*w)|y[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*m)\\b",
+            "regex": "(?:[;\\n\\r`]|\\$(?:\\(?\\(|{)|(?:\\|)?\\||\\(\\s*\\)|[<>]\\(|&?&|\\{)\\s*(?:(?:\\w+=(?:[^\\s]*|\\$.*|\\$.*|<.*|>.*|\\'.*\\'|\\\".*\\\")\\s+|(?:\\s*\\(|!)\\s*|\\{|\\$))*\\s*(?:['\\\"])*(?:[\\?\\*\\[\\]\\(\\)\\-\\|+\\w'\\\"\\./\\x5c]+/)?[\\x5c'\\\"]*(?:s[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*(?:(?:f[\\x5c'\\\"]*a[\\x5c'\\\"]*c[\\x5c'\\\"]*l[\\x5c'\\\"]*)?(?:\\s|<|>).*|a[\\x5c'\\\"]*r[\\x5c'\\\"]*c[\\x5c'\\\"]*h|e[\\x5c'\\\"]*n[\\x5c'\\\"]*v|s[\\x5c'\\\"]*i[\\x5c'\\\"]*d)|(?:r[\\x5c'\\\"]*v[\\x5c'\\\"]*i[\\x5c'\\\"]*c[\\x5c'\\\"]*e|d)[\\x5c'\\\"]*(?:\\s|<|>).*|n[\\x5c'\\\"]*d[\\x5c'\\\"]*m[\\x5c'\\\"]*a[\\x5c'\\\"]*i[\\x5c'\\\"]*l)|t[\\x5c'\\\"]*(?:a[\\x5c'\\\"]*r[\\x5c'\\\"]*t[\\x5c'\\\"]*-[\\x5c'\\\"]*s[\\x5c'\\\"]*t[\\x5c'\\\"]*o[\\x5c'\\\"]*p[\\x5c'\\\"]*-[\\x5c'\\\"]*d[\\x5c'\\\"]*a[\\x5c'\\\"]*e[\\x5c'\\\"]*m[\\x5c'\\\"]*o[\\x5c'\\\"]*n|r[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*n[\\x5c'\\\"]*g[\\x5c'\\\"]*s|a[\\x5c'\\\"]*c[\\x5c'\\\"]*e)|d[\\x5c'\\\"]*b[\\x5c'\\\"]*u[\\x5c'\\\"]*f)|h[\\x5c'\\\"]*(?:\\.[\\x5c'\\\"]*d[\\x5c'\\\"]*i[\\x5c'\\\"]*s[\\x5c'\\\"]*t[\\x5c'\\\"]*r[\\x5c'\\\"]*i[\\x5c'\\\"]*b|u[\\x5c'\\\"]*t[\\x5c'\\\"]*d[\\x5c'\\\"]*o[\\x5c'\\\"]*w[\\x5c'\\\"]*n|(?:\\s|<|>).*)|c[\\x5c'\\\"]*(?:(?:r[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*e[\\x5c'\\\"]*n|i[\\x5c'\\\"]*p[\\x5c'\\\"]*t)|p)[\\x5c'\\\"]*(?:\\s|<|>).*|h[\\x5c'\\\"]*e[\\x5c'\\\"]*d)|o[\\x5c'\\\"]*(?:(?:u[\\x5c'\\\"]*r[\\x5c'\\\"]*c[\\x5c'\\\"]*e|r[\\x5c'\\\"]*t)[\\x5c'\\\"]*(?:\\s|<|>).*|c[\\x5c'\\\"]*a[\\x5c'\\\"]*t)|(?:p[\\x5c'\\\"]*l[\\x5c'\\\"]*i[\\x5c'\\\"]*t|g)[\\x5c'\\\"]*(?:\\s|<|>).*|q[\\x5c'\\\"]*l[\\x5c'\\\"]*i[\\x5c'\\\"]*t[\\x5c'\\\"]*e[\\x5c'\\\"]*3|(?:l[\\x5c'\\\"]*e[\\x5c'\\\"]*e|f[\\x5c'\\\"]*t)[\\x5c'\\\"]*p|y[\\x5c'\\\"]*s[\\x5c'\\\"]*c[\\x5c'\\\"]*t[\\x5c'\\\"]*l|u[\\x5c'\\\"]*(?:(?:\\s|<|>).*|d[\\x5c'\\\"]*o)|d[\\x5c'\\\"]*i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|s[\\x5c'\\\"]*h|v[\\x5c'\\\"]*n)|p[\\x5c'\\\"]*(?:k[\\x5c'\\\"]*(?:g(?:(?:[\\x5c'\\\"]*_)?[\\x5c'\\\"]*i[\\x5c'\\\"]*n[\\x5c'\\\"]*f[\\x5c'\\\"]*o)?|e[\\x5c'\\\"]*x[\\x5c'\\\"]*e[\\x5c'\\\"]*c|i[\\x5c'\\\"]*l[\\x5c'\\\"]*l)|i[\\x5c'\\\"]*(?:(?:c(?:[\\x5c'\\\"]*o)?|p)[\\x5c'\\\"]*(?:\\s|<|>).*|d[\\x5c'\\\"]*s[\\x5c'\\\"]*t[\\x5c'\\\"]*a[\\x5c'\\\"]*t|n[\\x5c'\\\"]*g)|t[\\x5c'\\\"]*a[\\x5c'\\\"]*r(?:[\\x5c'\\\"]*(?:d[\\x5c'\\\"]*i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p))?|a[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*c[\\x5c'\\\"]*h[\\x5c'\\\"]*(?:\\s|<|>).*|s[\\x5c'\\\"]*s[\\x5c'\\\"]*w[\\x5c'\\\"]*d)|r[\\x5c'\\\"]*i[\\x5c'\\\"]*n[\\x5c'\\\"]*t[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*n[\\x5c'\\\"]*v|f[\\x5c'\\\"]*(?:\\s|<|>).*)|y[\\x5c'\\\"]*t[\\x5c'\\\"]*h[\\x5c'\\\"]*o[\\x5c'\\\"]*n(?:[\\x5c'\\\"]*(?:3(?:[\\x5c'\\\"]*m)?|2))?|e[\\x5c'\\\"]*r[\\x5c'\\\"]*(?:l(?:[\\x5c'\\\"]*(?:s[\\x5c'\\\"]*h|5))?|m[\\x5c'\\\"]*s)|(?:u[\\x5c'\\\"]*s[\\x5c'\\\"]*h|o[\\x5c'\\\"]*p)[\\x5c'\\\"]*d|f[\\x5c'\\\"]*(?:(?:\\s|<|>).*|t[\\x5c'\\\"]*p)|g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|h[\\x5c'\\\"]*p(?:[\\x5c'\\\"]*[57])?|s[\\x5c'\\\"]*(?:\\s|<|>).*|d[\\x5c'\\\"]*b)|n[\\x5c'\\\"]*(?:c[\\x5c'\\\"]*(?:\\.[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*r[\\x5c'\\\"]*a[\\x5c'\\\"]*d[\\x5c'\\\"]*i[\\x5c'\\\"]*t[\\x5c'\\\"]*i[\\x5c'\\\"]*o[\\x5c'\\\"]*n[\\x5c'\\\"]*a[\\x5c'\\\"]*l|o[\\x5c'\\\"]*p[\\x5c'\\\"]*e[\\x5c'\\\"]*n[\\x5c'\\\"]*b[\\x5c'\\\"]*s[\\x5c'\\\"]*d)|(?:\\s|<|>).*|a[\\x5c'\\\"]*t)|e[\\x5c'\\\"]*t[\\x5c'\\\"]*(?:k[\\x5c'\\\"]*i[\\x5c'\\\"]*t[\\x5c'\\\"]*-[\\x5c'\\\"]*f[\\x5c'\\\"]*t[\\x5c'\\\"]*p|(?:s[\\x5c'\\\"]*t|c)[\\x5c'\\\"]*a[\\x5c'\\\"]*t|(?:\\s|<|>).*)|s[\\x5c'\\\"]*(?:l[\\x5c'\\\"]*o[\\x5c'\\\"]*o[\\x5c'\\\"]*k[\\x5c'\\\"]*u[\\x5c'\\\"]*p|e[\\x5c'\\\"]*n[\\x5c'\\\"]*t[\\x5c'\\\"]*e[\\x5c'\\\"]*r|t[\\x5c'\\\"]*a[\\x5c'\\\"]*t)|o[\\x5c'\\\"]*(?:d[\\x5c'\\\"]*e[\\x5c'\\\"]*(?:\\s|<|>).*|h[\\x5c'\\\"]*u[\\x5c'\\\"]*p)|a[\\x5c'\\\"]*(?:n[\\x5c'\\\"]*o[\\x5c'\\\"]*(?:\\s|<|>).*|w[\\x5c'\\\"]*k)|p[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*n[\\x5c'\\\"]*g|m[\\x5c'\\\"]*(?:\\s|<|>).*)|i[\\x5c'\\\"]*c[\\x5c'\\\"]*e[\\x5c'\\\"]*(?:\\s|<|>).*|r[\\x5c'\\\"]*o[\\x5c'\\\"]*f[\\x5c'\\\"]*f|m[\\x5c'\\\"]*a[\\x5c'\\\"]*p)|r[\\x5c'\\\"]*(?:u[\\x5c'\\\"]*(?:n[\\x5c'\\\"]*-[\\x5c'\\\"]*(?:m[\\x5c'\\\"]*a[\\x5c'\\\"]*i[\\x5c'\\\"]*l[\\x5c'\\\"]*c[\\x5c'\\\"]*a[\\x5c'\\\"]*p|p[\\x5c'\\\"]*a[\\x5c'\\\"]*r[\\x5c'\\\"]*t[\\x5c'\\\"]*s)|b[\\x5c'\\\"]*y(?:[\\x5c'\\\"]*(?:1(?:[\\x5c'\\\"]*[89])?|2[\\x5c'\\\"]*[012]))?)|e[\\x5c'\\\"]*(?:(?:p[\\x5c'\\\"]*(?:l[\\x5c'\\\"]*a[\\x5c'\\\"]*c[\\x5c'\\\"]*e|e[\\x5c'\\\"]*a[\\x5c'\\\"]*t)|n[\\x5c'\\\"]*a[\\x5c'\\\"]*m[\\x5c'\\\"]*e)[\\x5c'\\\"]*(?:\\s|<|>).*|a[\\x5c'\\\"]*l[\\x5c'\\\"]*p[\\x5c'\\\"]*a[\\x5c'\\\"]*t[\\x5c'\\\"]*h)|m[\\x5c'\\\"]*(?:(?:d[\\x5c'\\\"]*i[\\x5c'\\\"]*r[\\x5c'\\\"]*)?(?:\\s|<|>).*|u[\\x5c'\\\"]*s[\\x5c'\\\"]*e[\\x5c'\\\"]*r)|a[\\x5c'\\\"]*(?:k[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*(?:\\s|<|>).*|u)|r[\\x5c'\\\"]*(?:\\s|<|>).*)|(?:c[\\x5c'\\\"]*p|p[\\x5c'\\\"]*m)[\\x5c'\\\"]*(?:\\s|<|>).*|v[\\x5c'\\\"]*i[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*w|m)|n[\\x5c'\\\"]*a[\\x5c'\\\"]*n[\\x5c'\\\"]*o|o[\\x5c'\\\"]*u[\\x5c'\\\"]*t[\\x5c'\\\"]*e|s[\\x5c'\\\"]*y[\\x5c'\\\"]*n[\\x5c'\\\"]*c)|t[\\x5c'\\\"]*(?:c[\\x5c'\\\"]*(?:p[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*r[\\x5c'\\\"]*a[\\x5c'\\\"]*c[\\x5c'\\\"]*e[\\x5c'\\\"]*r[\\x5c'\\\"]*o[\\x5c'\\\"]*u[\\x5c'\\\"]*t[\\x5c'\\\"]*e|i[\\x5c'\\\"]*n[\\x5c'\\\"]*g)|s[\\x5c'\\\"]*h)|i[\\x5c'\\\"]*m[\\x5c'\\\"]*e[\\x5c'\\\"]*(?:d[\\x5c'\\\"]*a[\\x5c'\\\"]*t[\\x5c'\\\"]*e[\\x5c'\\\"]*c[\\x5c'\\\"]*t[\\x5c'\\\"]*l|o[\\x5c'\\\"]*u[\\x5c'\\\"]*t|(?:\\s|<|>).*)|a[\\x5c'\\\"]*(?:s[\\x5c'\\\"]*k[\\x5c'\\\"]*s[\\x5c'\\\"]*e[\\x5c'\\\"]*t|i[\\x5c'\\\"]*l(?:[\\x5c'\\\"]*f)?|r[\\x5c'\\\"]*(?:\\s|<|>).*)|r[\\x5c'\\\"]*a[\\x5c'\\\"]*c[\\x5c'\\\"]*e[\\x5c'\\\"]*r[\\x5c'\\\"]*o[\\x5c'\\\"]*u[\\x5c'\\\"]*t[\\x5c'\\\"]*e(?:[\\x5c'\\\"]*6)?|e[\\x5c'\\\"]*(?:l[\\x5c'\\\"]*n[\\x5c'\\\"]*e[\\x5c'\\\"]*t|e[\\x5c'\\\"]*(?:\\s|<|>).*)|o[\\x5c'\\\"]*(?:u[\\x5c'\\\"]*c[\\x5c'\\\"]*h[\\x5c'\\\"]*(?:\\s|<|>).*|p)|m[\\x5c'\\\"]*u[\\x5c'\\\"]*x)|m[\\x5c'\\\"]*(?:y[\\x5c'\\\"]*s[\\x5c'\\\"]*q[\\x5c'\\\"]*l(?:[\\x5c'\\\"]*(?:d[\\x5c'\\\"]*u[\\x5c'\\\"]*m[\\x5c'\\\"]*p(?:[\\x5c'\\\"]*s[\\x5c'\\\"]*l[\\x5c'\\\"]*o[\\x5c'\\\"]*w)?|h[\\x5c'\\\"]*o[\\x5c'\\\"]*t[\\x5c'\\\"]*c[\\x5c'\\\"]*o[\\x5c'\\\"]*p[\\x5c'\\\"]*y|a[\\x5c'\\\"]*d[\\x5c'\\\"]*m[\\x5c'\\\"]*i[\\x5c'\\\"]*n|s[\\x5c'\\\"]*h[\\x5c'\\\"]*o[\\x5c'\\\"]*w))?|(?:o[\\x5c'\\\"]*(?:u[\\x5c'\\\"]*n[\\x5c'\\\"]*t|r[\\x5c'\\\"]*e)|k[\\x5c'\\\"]*d[\\x5c'\\\"]*i[\\x5c'\\\"]*r|u[\\x5c'\\\"]*t[\\x5c'\\\"]*t|v)[\\x5c'\\\"]*(?:\\s|<|>).*|a[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*l[\\x5c'\\\"]*(?:x[\\x5c'\\\"]*(?:\\s|<|>).*|q)|(?:k[\\x5c'\\\"]*e|n)[\\x5c'\\\"]*(?:\\s|<|>).*|w[\\x5c'\\\"]*k)|l[\\x5c'\\\"]*o[\\x5c'\\\"]*c[\\x5c'\\\"]*a[\\x5c'\\\"]*t[\\x5c'\\\"]*e)|u[\\x5c'\\\"]*(?:n[\\x5c'\\\"]*(?:l[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*n[\\x5c'\\\"]*k[\\x5c'\\\"]*(?:\\s|<|>).*|z[\\x5c'\\\"]*m[\\x5c'\\\"]*a)|s[\\x5c'\\\"]*(?:h[\\x5c'\\\"]*a[\\x5c'\\\"]*r[\\x5c'\\\"]*e|e[\\x5c'\\\"]*t)[\\x5c'\\\"]*(?:\\s|<|>).*|c[\\x5c'\\\"]*o[\\x5c'\\\"]*m[\\x5c'\\\"]*p[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*s|a[\\x5c'\\\"]*m[\\x5c'\\\"]*e|r[\\x5c'\\\"]*a[\\x5c'\\\"]*r|z[\\x5c'\\\"]*i[\\x5c'\\\"]*p|x[\\x5c'\\\"]*z)|s[\\x5c'\\\"]*e[\\x5c'\\\"]*r[\\x5c'\\\"]*(?:(?:a[\\x5c'\\\"]*d|m[\\x5c'\\\"]*o)[\\x5c'\\\"]*d|d[\\x5c'\\\"]*e[\\x5c'\\\"]*l)|l[\\x5c'\\\"]*i[\\x5c'\\\"]*m[\\x5c'\\\"]*i[\\x5c'\\\"]*t[\\x5c'\\\"]*(?:\\s|<|>).*)|x[\\x5c'\\\"]*(?:z[\\x5c'\\\"]*(?:(?:[ef][\\x5c'\\\"]*)?g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|d[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|e[\\x5c'\\\"]*c)|c[\\x5c'\\\"]*(?:a[\\x5c'\\\"]*t|m[\\x5c'\\\"]*p)|l[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*s|m[\\x5c'\\\"]*o[\\x5c'\\\"]*r[\\x5c'\\\"]*e|(?:\\s|<|>).*)|a[\\x5c'\\\"]*r[\\x5c'\\\"]*g[\\x5c'\\\"]*s|t[\\x5c'\\\"]*e[\\x5c'\\\"]*r[\\x5c'\\\"]*m|x[\\x5c'\\\"]*d[\\x5c'\\\"]*(?:\\s|<|>).*)|z[\\x5c'\\\"]*(?:(?:[ef][\\x5c'\\\"]*)?g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|c[\\x5c'\\\"]*(?:a[\\x5c'\\\"]*t|m[\\x5c'\\\"]*p)|d[\\x5c'\\\"]*i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|i[\\x5c'\\\"]*p[\\x5c'\\\"]*(?:\\s|<|>).*|l[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*s|m[\\x5c'\\\"]*o[\\x5c'\\\"]*r[\\x5c'\\\"]*e|r[\\x5c'\\\"]*u[\\x5c'\\\"]*n|s[\\x5c'\\\"]*h)|w[\\x5c'\\\"]*(?:h[\\x5c'\\\"]*o[\\x5c'\\\"]*(?:a[\\x5c'\\\"]*m[\\x5c'\\\"]*i|(?:\\s|<|>).*)|a[\\x5c'\\\"]*t[\\x5c'\\\"]*c[\\x5c'\\\"]*h[\\x5c'\\\"]*(?:\\s|<|>).*|g[\\x5c'\\\"]*e[\\x5c'\\\"]*t|3[\\x5c'\\\"]*m)|v[\\x5c'\\\"]*i[\\x5c'\\\"]*(?:m[\\x5c'\\\"]*(?:d[\\x5c'\\\"]*i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|(?:\\s|<|>).*)|(?:e[\\x5c'\\\"]*w[\\x5c'\\\"]*)?(?:\\s|<|>).*|g[\\x5c'\\\"]*r|p[\\x5c'\\\"]*w)|o[\\x5c'\\\"]*(?:p[\\x5c'\\\"]*e[\\x5c'\\\"]*n[\\x5c'\\\"]*s[\\x5c'\\\"]*s[\\x5c'\\\"]*l|n[\\x5c'\\\"]*i[\\x5c'\\\"]*n[\\x5c'\\\"]*t[\\x5c'\\\"]*r)|y[\\x5c'\\\"]*u[\\x5c'\\\"]*m)\\b",
             "options": {
               "case_sensitive": true,
               "min_length": 4
@@ -1346,7 +1346,7 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?:;|\\{|\\||\\|\\||&|&&|\\n|\\r|`)\\s*[\\(,@\\'\\\"\\s]*(?:[\\w'\\\"\\./]+/|[\\\\\\\\'\\\"\\^]*\\w[\\\\\\\\'\\\"\\^]*:.*\\\\\\\\|[\\^\\.\\w '\\\"/\\\\\\\\]*\\\\\\\\)?[\\\"\\^]*(?:m[\\\"\\^]*(?:y[\\\"\\^]*s[\\\"\\^]*q[\\\"\\^]*l(?:[\\\"\\^]*(?:d[\\\"\\^]*u[\\\"\\^]*m[\\\"\\^]*p(?:[\\\"\\^]*s[\\\"\\^]*l[\\\"\\^]*o[\\\"\\^]*w)?|h[\\\"\\^]*o[\\\"\\^]*t[\\\"\\^]*c[\\\"\\^]*o[\\\"\\^]*p[\\\"\\^]*y|a[\\\"\\^]*d[\\\"\\^]*m[\\\"\\^]*i[\\\"\\^]*n|s[\\\"\\^]*h[\\\"\\^]*o[\\\"\\^]*w))?|s[\\\"\\^]*(?:i[\\\"\\^]*(?:n[\\\"\\^]*f[\\\"\\^]*o[\\\"\\^]*3[\\\"\\^]*2|e[\\\"\\^]*x[\\\"\\^]*e[\\\"\\^]*c)|c[\\\"\\^]*o[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*i[\\\"\\^]*g|g[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|t[\\\"\\^]*s[\\\"\\^]*c)|o[\\\"\\^]*(?:u[\\\"\\^]*n[\\\"\\^]*t[\\\"\\^]*(?:(?:[\\s,;]|\\.|/|<|>).*|v[\\\"\\^]*o[\\\"\\^]*l)|v[\\\"\\^]*e[\\\"\\^]*u[\\\"\\^]*s[\\\"\\^]*e[\\\"\\^]*r|[dr][\\\"\\^]*e[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*)|k[\\\"\\^]*(?:d[\\\"\\^]*i[\\\"\\^]*r[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|l[\\\"\\^]*i[\\\"\\^]*n[\\\"\\^]*k)|d[\\\"\\^]*(?:s[\\\"\\^]*c[\\\"\\^]*h[\\\"\\^]*e[\\\"\\^]*d|(?:[\\s,;]|\\.|/|<|>).*)|a[\\\"\\^]*p[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*e[\\\"\\^]*n[\\\"\\^]*d|b[\\\"\\^]*s[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*l[\\\"\\^]*i|e[\\\"\\^]*a[\\\"\\^]*s[\\\"\\^]*u[\\\"\\^]*r[\\\"\\^]*e|m[\\\"\\^]*s[\\\"\\^]*y[\\\"\\^]*s)|d[\\\"\\^]*(?:i[\\\"\\^]*(?:s[\\\"\\^]*k[\\\"\\^]*(?:(?:m[\\\"\\^]*g[\\\"\\^]*m|p[\\\"\\^]*a[\\\"\\^]*r)[\\\"\\^]*t|s[\\\"\\^]*h[\\\"\\^]*a[\\\"\\^]*d[\\\"\\^]*o[\\\"\\^]*w)|r[\\\"\\^]*(?:(?:[\\s,;]|\\.|/|<|>).*|u[\\\"\\^]*s[\\\"\\^]*e)|f[\\\"\\^]*f[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*)|e[\\\"\\^]*(?:l[\\\"\\^]*(?:p[\\\"\\^]*r[\\\"\\^]*o[\\\"\\^]*f|t[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*e|(?:[\\s,;]|\\.|/|<|>).*)|v[\\\"\\^]*(?:m[\\\"\\^]*g[\\\"\\^]*m[\\\"\\^]*t|c[\\\"\\^]*o[\\\"\\^]*n)|(?:f[\\\"\\^]*r[\\\"\\^]*a|b[\\\"\\^]*u)[\\\"\\^]*g)|s[\\\"\\^]*(?:a[\\\"\\^]*(?:c[\\\"\\^]*l[\\\"\\^]*s|d[\\\"\\^]*d)|q[\\\"\\^]*u[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*y|m[\\\"\\^]*o[\\\"\\^]*(?:v[\\\"\\^]*e|d)|g[\\\"\\^]*e[\\\"\\^]*t|r[\\\"\\^]*m)|(?:r[\\\"\\^]*i[\\\"\\^]*v[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*q[\\\"\\^]*u[\\\"\\^]*e[\\\"\\^]*r|o[\\\"\\^]*s[\\\"\\^]*k[\\\"\\^]*e)[\\\"\\^]*y|(?:c[\\\"\\^]*o[\\\"\\^]*m[\\\"\\^]*c[\\\"\\^]*n[\\\"\\^]*f|x[\\\"\\^]*d[\\\"\\^]*i[\\\"\\^]*a)[\\\"\\^]*g|a[\\\"\\^]*t[\\\"\\^]*e[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|n[\\\"\\^]*s[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*a[\\\"\\^]*t)|c[\\\"\\^]*(?:o[\\\"\\^]*(?:m[\\\"\\^]*(?:p[\\\"\\^]*(?:(?:a[\\\"\\^]*c[\\\"\\^]*t[\\\"\\^]*)?(?:[\\s,;]|\\.|/|<|>).*|m[\\\"\\^]*g[\\\"\\^]*m[\\\"\\^]*t)|e[\\\"\\^]*x[\\\"\\^]*p)|n[\\\"\\^]*(?:2[\\\"\\^]*p|v[\\\"\\^]*e)[\\\"\\^]*r[\\\"\\^]*t|p[\\\"\\^]*y)|l[\\\"\\^]*(?:e[\\\"\\^]*a[\\\"\\^]*(?:n[\\\"\\^]*m[\\\"\\^]*g[\\\"\\^]*r|r[\\\"\\^]*m[\\\"\\^]*e[\\\"\\^]*m)|u[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*e[\\\"\\^]*r)|h[\\\"\\^]*(?:k[\\\"\\^]*(?:n[\\\"\\^]*t[\\\"\\^]*f[\\\"\\^]*s|d[\\\"\\^]*s[\\\"\\^]*k)|d[\\\"\\^]*i[\\\"\\^]*r[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*)|s[\\\"\\^]*(?:c[\\\"\\^]*(?:r[\\\"\\^]*i[\\\"\\^]*p[\\\"\\^]*t|c[\\\"\\^]*m[\\\"\\^]*d)|v[\\\"\\^]*d[\\\"\\^]*e)|e[\\\"\\^]*r[\\\"\\^]*t[\\\"\\^]*(?:u[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*l|r[\\\"\\^]*e[\\\"\\^]*q)|a[\\\"\\^]*(?:l[\\\"\\^]*l[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|c[\\\"\\^]*l[\\\"\\^]*s)|m[\\\"\\^]*d(?:[\\\"\\^]*k[\\\"\\^]*e[\\\"\\^]*y)?|i[\\\"\\^]*p[\\\"\\^]*h[\\\"\\^]*e[\\\"\\^]*r|u[\\\"\\^]*r[\\\"\\^]*l)|f[\\\"\\^]*(?:o[\\\"\\^]*r[\\\"\\^]*(?:m[\\\"\\^]*a[\\\"\\^]*t[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|f[\\\"\\^]*i[\\\"\\^]*l[\\\"\\^]*e[\\\"\\^]*s|e[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*h)|i[\\\"\\^]*n[\\\"\\^]*d[\\\"\\^]*(?:(?:[\\s,;]|\\.|/|<|>).*|s[\\\"\\^]*t[\\\"\\^]*r)|s[\\\"\\^]*(?:m[\\\"\\^]*g[\\\"\\^]*m[\\\"\\^]*t|u[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*l)|t[\\\"\\^]*(?:p[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|y[\\\"\\^]*p[\\\"\\^]*e)|r[\\\"\\^]*e[\\\"\\^]*e[\\\"\\^]*d[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*k|c[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|g[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*p)|n[\\\"\\^]*(?:e[\\\"\\^]*t[\\\"\\^]*(?:s[\\\"\\^]*(?:t[\\\"\\^]*a[\\\"\\^]*t|v[\\\"\\^]*c|h)|(?:[\\s,;]|\\.|/|<|>).*|c[\\\"\\^]*a[\\\"\\^]*t|d[\\\"\\^]*o[\\\"\\^]*m)|t[\\\"\\^]*(?:b[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*k[\\\"\\^]*u[\\\"\\^]*p|r[\\\"\\^]*i[\\\"\\^]*g[\\\"\\^]*h[\\\"\\^]*t[\\\"\\^]*s)|(?:s[\\\"\\^]*l[\\\"\\^]*o[\\\"\\^]*o[\\\"\\^]*k[\\\"\\^]*u|m[\\\"\\^]*a)[\\\"\\^]*p|c[\\\"\\^]*(?:(?:[\\s,;]|\\.|/|<|>).*|a[\\\"\\^]*t)|b[\\\"\\^]*t[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*a[\\\"\\^]*t)|e[\\\"\\^]*(?:x[\\\"\\^]*p[\\\"\\^]*(?:a[\\\"\\^]*n[\\\"\\^]*d[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|l[\\\"\\^]*o[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*r)|v[\\\"\\^]*e[\\\"\\^]*n[\\\"\\^]*t[\\\"\\^]*(?:c[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*a[\\\"\\^]*t[\\\"\\^]*e|v[\\\"\\^]*w[\\\"\\^]*r)|n[\\\"\\^]*d[\\\"\\^]*l[\\\"\\^]*o[\\\"\\^]*c[\\\"\\^]*a[\\\"\\^]*l|g[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*p|r[\\\"\\^]*a[\\\"\\^]*s[\\\"\\^]*e|c[\\\"\\^]*h[\\\"\\^]*o)|g[\\\"\\^]*(?:a[\\\"\\^]*t[\\\"\\^]*h[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*n[\\\"\\^]*e[\\\"\\^]*t[\\\"\\^]*w[\\\"\\^]*o[\\\"\\^]*r[\\\"\\^]*k[\\\"\\^]*i[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*o|p[\\\"\\^]*(?:(?:r[\\\"\\^]*e[\\\"\\^]*s[\\\"\\^]*u[\\\"\\^]*l|e[\\\"\\^]*d[\\\"\\^]*i)[\\\"\\^]*t|u[\\\"\\^]*p[\\\"\\^]*d[\\\"\\^]*a[\\\"\\^]*t[\\\"\\^]*e)|i[\\\"\\^]*t[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|e[\\\"\\^]*t[\\\"\\^]*m[\\\"\\^]*a[\\\"\\^]*c)|i[\\\"\\^]*(?:r[\\\"\\^]*b(?:[\\\"\\^]*(?:1(?:[\\\"\\^]*[89])?|2[\\\"\\^]*[012]))?|f[\\\"\\^]*m[\\\"\\^]*e[\\\"\\^]*m[\\\"\\^]*b[\\\"\\^]*e[\\\"\\^]*r|p[\\\"\\^]*c[\\\"\\^]*o[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*i[\\\"\\^]*g|n[\\\"\\^]*e[\\\"\\^]*t[\\\"\\^]*c[\\\"\\^]*p[\\\"\\^]*l|c[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*l[\\\"\\^]*s)|a[\\\"\\^]*(?:d[\\\"\\^]*(?:d[\\\"\\^]*u[\\\"\\^]*s[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*s|m[\\\"\\^]*o[\\\"\\^]*d[\\\"\\^]*c[\\\"\\^]*m[\\\"\\^]*d)|r[\\\"\\^]*p[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|t[\\\"\\^]*t[\\\"\\^]*r[\\\"\\^]*i[\\\"\\^]*b|s[\\\"\\^]*s[\\\"\\^]*o[\\\"\\^]*c|z[\\\"\\^]*m[\\\"\\^]*a[\\\"\\^]*n)|l[\\\"\\^]*(?:o[\\\"\\^]*g[\\\"\\^]*(?:e[\\\"\\^]*v[\\\"\\^]*e[\\\"\\^]*n[\\\"\\^]*t|t[\\\"\\^]*i[\\\"\\^]*m[\\\"\\^]*e|m[\\\"\\^]*a[\\\"\\^]*n|o[\\\"\\^]*f[\\\"\\^]*f)|a[\\\"\\^]*b[\\\"\\^]*e[\\\"\\^]*l[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|u[\\\"\\^]*s[\\\"\\^]*r[\\\"\\^]*m[\\\"\\^]*g[\\\"\\^]*r)|b[\\\"\\^]*(?:(?:c[\\\"\\^]*d[\\\"\\^]*(?:b[\\\"\\^]*o[\\\"\\^]*o|e[\\\"\\^]*d[\\\"\\^]*i)|r[\\\"\\^]*o[\\\"\\^]*w[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*a)[\\\"\\^]*t|i[\\\"\\^]*t[\\\"\\^]*s[\\\"\\^]*a[\\\"\\^]*d[\\\"\\^]*m[\\\"\\^]*i[\\\"\\^]*n|o[\\\"\\^]*o[\\\"\\^]*t[\\\"\\^]*c[\\\"\\^]*f[\\\"\\^]*g)|h[\\\"\\^]*(?:o[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*n[\\\"\\^]*a[\\\"\\^]*m[\\\"\\^]*e|d[\\\"\\^]*w[\\\"\\^]*w[\\\"\\^]*i[\\\"\\^]*z)|j[\\\"\\^]*a[\\\"\\^]*v[\\\"\\^]*a[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|7[\\\"\\^]*z(?:[\\\"\\^]*[ar])?)(?:\\.[\\\"\\^]*\\w+)?\\b",
+            "regex": "(?:[;\\n\\r`]|(?:\\|)?\\||&?&|\\{)\\s*(?:['(?:,@\\\"\\s])*(?:(?:(?:[\\x5c'\\\"\\^]*\\w[\\x5c'\\\"\\^]*:.*|[\\^\\.\\w '\\\"/\\x5c]*)\\x5c|[\\w'\\\"\\./]+\\/))?[\\\"\\^]*(?:m[\\\"\\^]*(?:y[\\\"\\^]*s[\\\"\\^]*q[\\\"\\^]*l(?:[\\\"\\^]*(?:d[\\\"\\^]*u[\\\"\\^]*m[\\\"\\^]*p(?:[\\\"\\^]*s[\\\"\\^]*l[\\\"\\^]*o[\\\"\\^]*w)?|h[\\\"\\^]*o[\\\"\\^]*t[\\\"\\^]*c[\\\"\\^]*o[\\\"\\^]*p[\\\"\\^]*y|a[\\\"\\^]*d[\\\"\\^]*m[\\\"\\^]*i[\\\"\\^]*n|s[\\\"\\^]*h[\\\"\\^]*o[\\\"\\^]*w))?|s[\\\"\\^]*(?:i[\\\"\\^]*(?:n[\\\"\\^]*f[\\\"\\^]*o[\\\"\\^]*3[\\\"\\^]*2|e[\\\"\\^]*x[\\\"\\^]*e[\\\"\\^]*c)|c[\\\"\\^]*o[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*i[\\\"\\^]*g|g[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|h[\\\"\\^]*t[\\\"\\^]*a|t[\\\"\\^]*s[\\\"\\^]*c)|o[\\\"\\^]*(?:u[\\\"\\^]*n[\\\"\\^]*t[\\\"\\^]*(?:(?:[\\s,;]|\\.|/|<|>).*|v[\\\"\\^]*o[\\\"\\^]*l)|v[\\\"\\^]*e[\\\"\\^]*u[\\\"\\^]*s[\\\"\\^]*e[\\\"\\^]*r|[dr][\\\"\\^]*e[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*)|k[\\\"\\^]*(?:d[\\\"\\^]*i[\\\"\\^]*r[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|l[\\\"\\^]*i[\\\"\\^]*n[\\\"\\^]*k)|d[\\\"\\^]*(?:s[\\\"\\^]*c[\\\"\\^]*h[\\\"\\^]*e[\\\"\\^]*d|(?:[\\s,;]|\\.|/|<|>).*)|a[\\\"\\^]*p[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*e[\\\"\\^]*n[\\\"\\^]*d|b[\\\"\\^]*s[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*l[\\\"\\^]*i|e[\\\"\\^]*a[\\\"\\^]*s[\\\"\\^]*u[\\\"\\^]*r[\\\"\\^]*e|m[\\\"\\^]*s[\\\"\\^]*y[\\\"\\^]*s)|d[\\\"\\^]*(?:i[\\\"\\^]*(?:s[\\\"\\^]*k[\\\"\\^]*(?:(?:m[\\\"\\^]*g[\\\"\\^]*m|p[\\\"\\^]*a[\\\"\\^]*r)[\\\"\\^]*t|s[\\\"\\^]*h[\\\"\\^]*a[\\\"\\^]*d[\\\"\\^]*o[\\\"\\^]*w)|r[\\\"\\^]*(?:(?:[\\s,;]|\\.|/|<|>).*|u[\\\"\\^]*s[\\\"\\^]*e)|f[\\\"\\^]*f[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*)|e[\\\"\\^]*(?:l[\\\"\\^]*(?:p[\\\"\\^]*r[\\\"\\^]*o[\\\"\\^]*f|t[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*e|(?:[\\s,;]|\\.|/|<|>).*)|v[\\\"\\^]*(?:m[\\\"\\^]*g[\\\"\\^]*m[\\\"\\^]*t|c[\\\"\\^]*o[\\\"\\^]*n)|(?:f[\\\"\\^]*r[\\\"\\^]*a|b[\\\"\\^]*u)[\\\"\\^]*g)|s[\\\"\\^]*(?:a[\\\"\\^]*(?:c[\\\"\\^]*l[\\\"\\^]*s|d[\\\"\\^]*d)|q[\\\"\\^]*u[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*y|m[\\\"\\^]*o[\\\"\\^]*(?:v[\\\"\\^]*e|d)|g[\\\"\\^]*e[\\\"\\^]*t|r[\\\"\\^]*m)|(?:r[\\\"\\^]*i[\\\"\\^]*v[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*q[\\\"\\^]*u[\\\"\\^]*e[\\\"\\^]*r|o[\\\"\\^]*s[\\\"\\^]*k[\\\"\\^]*e)[\\\"\\^]*y|(?:c[\\\"\\^]*o[\\\"\\^]*m[\\\"\\^]*c[\\\"\\^]*n[\\\"\\^]*f|x[\\\"\\^]*d[\\\"\\^]*i[\\\"\\^]*a)[\\\"\\^]*g|a[\\\"\\^]*t[\\\"\\^]*e[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|n[\\\"\\^]*s[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*a[\\\"\\^]*t)|c[\\\"\\^]*(?:o[\\\"\\^]*(?:m[\\\"\\^]*(?:p[\\\"\\^]*(?:(?:a[\\\"\\^]*c[\\\"\\^]*t[\\\"\\^]*)?(?:[\\s,;]|\\.|/|<|>).*|m[\\\"\\^]*g[\\\"\\^]*m[\\\"\\^]*t)|e[\\\"\\^]*x[\\\"\\^]*p)|n[\\\"\\^]*(?:2[\\\"\\^]*p|v[\\\"\\^]*e)[\\\"\\^]*r[\\\"\\^]*t|p[\\\"\\^]*y)|l[\\\"\\^]*(?:e[\\\"\\^]*a[\\\"\\^]*(?:n[\\\"\\^]*m[\\\"\\^]*g[\\\"\\^]*r|r[\\\"\\^]*m[\\\"\\^]*e[\\\"\\^]*m)|u[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*e[\\\"\\^]*r)|h[\\\"\\^]*(?:k[\\\"\\^]*(?:n[\\\"\\^]*t[\\\"\\^]*f[\\\"\\^]*s|d[\\\"\\^]*s[\\\"\\^]*k)|d[\\\"\\^]*i[\\\"\\^]*r[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*)|s[\\\"\\^]*(?:c[\\\"\\^]*(?:r[\\\"\\^]*i[\\\"\\^]*p[\\\"\\^]*t|c[\\\"\\^]*m[\\\"\\^]*d)|v[\\\"\\^]*d[\\\"\\^]*e)|e[\\\"\\^]*r[\\\"\\^]*t[\\\"\\^]*(?:u[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*l|r[\\\"\\^]*e[\\\"\\^]*q)|a[\\\"\\^]*(?:l[\\\"\\^]*l[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|c[\\\"\\^]*l[\\\"\\^]*s)|m[\\\"\\^]*d(?:[\\\"\\^]*k[\\\"\\^]*e[\\\"\\^]*y)?|i[\\\"\\^]*p[\\\"\\^]*h[\\\"\\^]*e[\\\"\\^]*r|u[\\\"\\^]*r[\\\"\\^]*l)|f[\\\"\\^]*(?:o[\\\"\\^]*r[\\\"\\^]*(?:m[\\\"\\^]*a[\\\"\\^]*t[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|f[\\\"\\^]*i[\\\"\\^]*l[\\\"\\^]*e[\\\"\\^]*s|e[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*h)|i[\\\"\\^]*n[\\\"\\^]*d[\\\"\\^]*(?:(?:[\\s,;]|\\.|/|<|>).*|s[\\\"\\^]*t[\\\"\\^]*r)|s[\\\"\\^]*(?:m[\\\"\\^]*g[\\\"\\^]*m[\\\"\\^]*t|u[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*l)|t[\\\"\\^]*(?:p[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|y[\\\"\\^]*p[\\\"\\^]*e)|r[\\\"\\^]*e[\\\"\\^]*e[\\\"\\^]*d[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*k|c[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|g[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*p)|n[\\\"\\^]*(?:e[\\\"\\^]*t[\\\"\\^]*(?:s[\\\"\\^]*(?:t[\\\"\\^]*a[\\\"\\^]*t|v[\\\"\\^]*c|h)|(?:[\\s,;]|\\.|/|<|>).*|c[\\\"\\^]*a[\\\"\\^]*t|d[\\\"\\^]*o[\\\"\\^]*m)|t[\\\"\\^]*(?:b[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*k[\\\"\\^]*u[\\\"\\^]*p|r[\\\"\\^]*i[\\\"\\^]*g[\\\"\\^]*h[\\\"\\^]*t[\\\"\\^]*s)|(?:s[\\\"\\^]*l[\\\"\\^]*o[\\\"\\^]*o[\\\"\\^]*k[\\\"\\^]*u|m[\\\"\\^]*a)[\\\"\\^]*p|c[\\\"\\^]*(?:(?:[\\s,;]|\\.|/|<|>).*|a[\\\"\\^]*t)|b[\\\"\\^]*t[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*a[\\\"\\^]*t)|e[\\\"\\^]*(?:x[\\\"\\^]*p[\\\"\\^]*(?:a[\\\"\\^]*n[\\\"\\^]*d[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|l[\\\"\\^]*o[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*r)|v[\\\"\\^]*e[\\\"\\^]*n[\\\"\\^]*t[\\\"\\^]*(?:c[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*a[\\\"\\^]*t[\\\"\\^]*e|v[\\\"\\^]*w[\\\"\\^]*r)|n[\\\"\\^]*d[\\\"\\^]*l[\\\"\\^]*o[\\\"\\^]*c[\\\"\\^]*a[\\\"\\^]*l|g[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*p|r[\\\"\\^]*a[\\\"\\^]*s[\\\"\\^]*e|c[\\\"\\^]*h[\\\"\\^]*o)|g[\\\"\\^]*(?:a[\\\"\\^]*t[\\\"\\^]*h[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*n[\\\"\\^]*e[\\\"\\^]*t[\\\"\\^]*w[\\\"\\^]*o[\\\"\\^]*r[\\\"\\^]*k[\\\"\\^]*i[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*o|p[\\\"\\^]*(?:(?:r[\\\"\\^]*e[\\\"\\^]*s[\\\"\\^]*u[\\\"\\^]*l|e[\\\"\\^]*d[\\\"\\^]*i)[\\\"\\^]*t|u[\\\"\\^]*p[\\\"\\^]*d[\\\"\\^]*a[\\\"\\^]*t[\\\"\\^]*e)|i[\\\"\\^]*t[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|e[\\\"\\^]*t[\\\"\\^]*m[\\\"\\^]*a[\\\"\\^]*c)|i[\\\"\\^]*(?:r[\\\"\\^]*b(?:[\\\"\\^]*(?:1(?:[\\\"\\^]*[89])?|2[\\\"\\^]*[012]))?|f[\\\"\\^]*m[\\\"\\^]*e[\\\"\\^]*m[\\\"\\^]*b[\\\"\\^]*e[\\\"\\^]*r|p[\\\"\\^]*c[\\\"\\^]*o[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*i[\\\"\\^]*g|n[\\\"\\^]*e[\\\"\\^]*t[\\\"\\^]*c[\\\"\\^]*p[\\\"\\^]*l|c[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*l[\\\"\\^]*s)|a[\\\"\\^]*(?:d[\\\"\\^]*(?:d[\\\"\\^]*u[\\\"\\^]*s[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*s|m[\\\"\\^]*o[\\\"\\^]*d[\\\"\\^]*c[\\\"\\^]*m[\\\"\\^]*d)|r[\\\"\\^]*p[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|t[\\\"\\^]*t[\\\"\\^]*r[\\\"\\^]*i[\\\"\\^]*b|s[\\\"\\^]*s[\\\"\\^]*o[\\\"\\^]*c|z[\\\"\\^]*m[\\\"\\^]*a[\\\"\\^]*n)|l[\\\"\\^]*(?:o[\\\"\\^]*g[\\\"\\^]*(?:e[\\\"\\^]*v[\\\"\\^]*e[\\\"\\^]*n[\\\"\\^]*t|t[\\\"\\^]*i[\\\"\\^]*m[\\\"\\^]*e|m[\\\"\\^]*a[\\\"\\^]*n|o[\\\"\\^]*f[\\\"\\^]*f)|a[\\\"\\^]*b[\\\"\\^]*e[\\\"\\^]*l[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|u[\\\"\\^]*s[\\\"\\^]*r[\\\"\\^]*m[\\\"\\^]*g[\\\"\\^]*r)|b[\\\"\\^]*(?:(?:c[\\\"\\^]*d[\\\"\\^]*(?:b[\\\"\\^]*o[\\\"\\^]*o|e[\\\"\\^]*d[\\\"\\^]*i)|r[\\\"\\^]*o[\\\"\\^]*w[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*a)[\\\"\\^]*t|i[\\\"\\^]*t[\\\"\\^]*s[\\\"\\^]*a[\\\"\\^]*d[\\\"\\^]*m[\\\"\\^]*i[\\\"\\^]*n|o[\\\"\\^]*o[\\\"\\^]*t[\\\"\\^]*c[\\\"\\^]*f[\\\"\\^]*g)|h[\\\"\\^]*(?:o[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*n[\\\"\\^]*a[\\\"\\^]*m[\\\"\\^]*e|d[\\\"\\^]*w[\\\"\\^]*w[\\\"\\^]*i[\\\"\\^]*z)|j[\\\"\\^]*a[\\\"\\^]*v[\\\"\\^]*a[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|7[\\\"\\^]*z(?:[\\\"\\^]*[ar])?)(?:\\.[\\\"\\^]*\\w+)?\\b",
             "options": {
               "min_length": 3
             }
diff --git a/lib/datadog/appsec/assets/waf_rules/strict.json b/lib/datadog/appsec/assets/waf_rules/strict.json
index b4bd53ec11a..ba53e9a3845 100644
--- a/lib/datadog/appsec/assets/waf_rules/strict.json
+++ b/lib/datadog/appsec/assets/waf_rules/strict.json
@@ -1,7 +1,7 @@
 {
   "version": "2.2",
   "metadata": {
-    "rules_version": "1.3.1"
+    "rules_version": "1.4.1"
   },
   "rules": [
     {
@@ -180,7 +180,7 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?:;|\\{|\\||\\|\\||&|&&|\\n|\\r|\\$\\(|\\$\\(\\(|`|\\${|<\\(|>\\(|\\(\\s*\\))\\s*(?:{|\\s*\\(\\s*|\\w+=(?:[^\\s]*|\\$.*|\\$.*|<.*|>.*|\\'.*\\'|\\\".*\\\")\\s+|!\\s*|\\$)*\\s*(?:'|\\\")*(?:[\\?\\*\\[\\]\\(\\)\\-\\|+\\w'\\\"\\./\\\\\\\\]+/)?[\\\\\\\\'\\\"]*(?:l[\\\\\\\\'\\\"]*(?:w[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*-[\\\\\\\\'\\\"]*(?:d[\\\\\\\\'\\\"]*(?:o[\\\\\\\\'\\\"]*w[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*d|u[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*p)|r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*q[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*t|m[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*r)|s(?:[\\\\\\\\'\\\"]*(?:b[\\\\\\\\'\\\"]*_[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*e|c[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*u|m[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*d|p[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*i|u[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*b|-[\\\\\\\\'\\\"]*F|h[\\\\\\\\'\\\"]*w|o[\\\\\\\\'\\\"]*f))?|z[\\\\\\\\'\\\"]*(?:(?:[ef][\\\\\\\\'\\\"]*)?g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p|c[\\\\\\\\'\\\"]*(?:a[\\\\\\\\'\\\"]*t|m[\\\\\\\\'\\\"]*p)|m[\\\\\\\\'\\\"]*(?:o[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e|a)|d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s)|e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*(?:(?:f[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*l|p[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*p)[\\\\\\\\'\\\"]*e|e[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*o|(?:\\s|<|>).*)|a[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*(?:l[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*g(?:[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n)?|c[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*m|(?:\\s|<|>).*)|o[\\\\\\\\'\\\"]*(?:c[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*e|l)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|g[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*e)|d[\\\\\\\\'\\\"]*(?:c[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*g|d[\\\\\\\\'\\\"]*(?:\\s|<|>).*)|(?:[np]|i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*k[\\\\\\\\'\\\"]*s|y[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*x)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|u[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*(?:5[\\\\\\\\'\\\"]*\\.[\\\\\\\\'\\\"]*[1234]|(?:\\s|<|>).*)|f[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*p(?:[\\\\\\\\'\\\"]*g[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*t)?)|b[\\\\\\\\'\\\"]*(?:z[\\\\\\\\'\\\"]*(?:(?:[ef][\\\\\\\\'\\\"]*)?g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p|d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s|m[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e|c[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t|i[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*2)|s[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*(?:c[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t|i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|t[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*r)|a[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*(?:\\s|<|>).*|s[\\\\\\\\'\\\"]*h)|r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*k[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*w|u[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n)|f[\\\\\\\\'\\\"]*(?:i(?:[\\\\\\\\'\\\"]*(?:l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*t|(?:\\s|<|>).*)|n[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*(?:\\s|<|>).*|s[\\\\\\\\'\\\"]*h))?|t[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*(?:s[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*s|w[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*o|(?:\\s|<|>).*)|u[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*n|(?:e[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*h|c)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|o[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*h|g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p)|c[\\\\\\\\'\\\"]*(?:o[\\\\\\\\'\\\"]*(?:m[\\\\\\\\'\\\"]*(?:p[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s|m[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*d)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|p[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*c)|h[\\\\\\\\'\\\"]*(?:d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*(?:\\s|<|>).*|f[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*g[\\\\\\\\'\\\"]*s|a[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*r|m[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*d)|r[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*b|(?:[cp]|a[\\\\\\\\'\\\"]*t)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|u[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*l|s[\\\\\\\\'\\\"]*h)|e[\\\\\\\\'\\\"]*(?:n[\\\\\\\\'\\\"]*(?:v(?:[\\\\\\\\'\\\"]*-[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*e)?|d[\\\\\\\\'\\\"]*(?:i[\\\\\\\\'\\\"]*f|s[\\\\\\\\'\\\"]*w))|x[\\\\\\\\'\\\"]*(?:p[\\\\\\\\'\\\"]*(?:a[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*d|o[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*t|r)|e[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*(?:\\s|<|>).*)|c[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*(?:\\s|<|>).*|g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p|s[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*c|v[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*l)|h[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*(?:d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*g[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*t|p[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*w[\\\\\\\\'\\\"]*d)|o[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*(?:n[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*e|i[\\\\\\\\'\\\"]*d)|(?:e[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*d|u[\\\\\\\\'\\\"]*p)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|i[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*y)|i[\\\\\\\\'\\\"]*(?:p[\\\\\\\\'\\\"]*(?:(?:6[\\\\\\\\'\\\"]*)?t[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*b[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s|c[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*g)|r[\\\\\\\\'\\\"]*b(?:[\\\\\\\\'\\\"]*(?:2[\\\\\\\\'\\\"]*[01234567]|1(?:[\\\\\\\\'\\\"]*[89])?|3[\\\\\\\\'\\\"]*0))?|f[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*g|d[\\\\\\\\'\\\"]*(?:\\s|<|>).*)|a[\\\\\\\\'\\\"]*(?:l[\\\\\\\\'\\\"]*(?:i[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*(?:\\s|<|>).*|p[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*e)|d[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*r|p[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*-[\\\\\\\\'\\\"]*g[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*t|r[\\\\\\\\'\\\"]*(?:c[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*(?:\\s|<|>).*|p)|w[\\\\\\\\'\\\"]*[ks][\\\\\\\\'\\\"]*(?:\\s|<|>).*)|g[\\\\\\\\'\\\"]*(?:(?:e[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*l|r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p|c[\\\\\\\\'\\\"]*c|i[\\\\\\\\'\\\"]*t|o)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|z[\\\\\\\\'\\\"]*(?:c[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t|i[\\\\\\\\'\\\"]*p)|u[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*z[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*p|d[\\\\\\\\'\\\"]*b)|d[\\\\\\\\'\\\"]*(?:h[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*t|(?:i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|u)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|(?:m[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s|p[\\\\\\\\'\\\"]*k)[\\\\\\\\'\\\"]*g|o[\\\\\\\\'\\\"]*(?:a[\\\\\\\\'\\\"]*s|n[\\\\\\\\'\\\"]*e)|a[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*h)|m[\\\\\\\\'\\\"]*(?:(?:k[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*r|o[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|a[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*(?:x[\\\\\\\\'\\\"]*(?:\\s|<|>).*|q)|l[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*e)|j[\\\\\\\\'\\\"]*(?:(?:a[\\\\\\\\'\\\"]*v[\\\\\\\\'\\\"]*a|o[\\\\\\\\'\\\"]*b[\\\\\\\\'\\\"]*s)[\\\\\\\\'\\\"]*(?:\\s|<|>).*|e[\\\\\\\\'\\\"]*x[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*c)|k[\\\\\\\\'\\\"]*(?:i[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*(?:a[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*l|(?:\\s|<|>).*)|s[\\\\\\\\'\\\"]*h)|G[\\\\\\\\'\\\"]*E[\\\\\\\\'\\\"]*T[\\\\\\\\'\\\"]*(?:\\s|<|>).*|7[\\\\\\\\'\\\"]*z(?:[\\\\\\\\'\\\"]*[ar])?)\\b",
+            "regex": "(?:[;\\n\\r`]|\\$(?:\\(?\\(|{)|(?:\\|)?\\||\\(\\s*\\)|[<>]\\(|&?&|\\{)\\s*(?:(?:\\w+=(?:[^\\s]*|\\$.*|\\$.*|<.*|>.*|\\'.*\\'|\\\".*\\\")\\s+|(?:\\s*\\(|!)\\s*|\\{|\\$))*\\s*(?:['\\\"])*(?:[\\?\\*\\[\\]\\(\\)\\-\\|+\\w'\\\"\\./\\x5c]+/)?[\\x5c'\\\"]*(?:l[\\x5c'\\\"]*(?:w[\\x5c'\\\"]*p[\\x5c'\\\"]*-[\\x5c'\\\"]*(?:d[\\x5c'\\\"]*(?:o[\\x5c'\\\"]*w[\\x5c'\\\"]*n[\\x5c'\\\"]*l[\\x5c'\\\"]*o[\\x5c'\\\"]*a[\\x5c'\\\"]*d|u[\\x5c'\\\"]*m[\\x5c'\\\"]*p)|r[\\x5c'\\\"]*e[\\x5c'\\\"]*q[\\x5c'\\\"]*u[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*t|m[\\x5c'\\\"]*i[\\x5c'\\\"]*r[\\x5c'\\\"]*r[\\x5c'\\\"]*o[\\x5c'\\\"]*r)|s(?:[\\x5c'\\\"]*(?:b[\\x5c'\\\"]*_[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*l[\\x5c'\\\"]*e[\\x5c'\\\"]*a[\\x5c'\\\"]*s[\\x5c'\\\"]*e|c[\\x5c'\\\"]*p[\\x5c'\\\"]*u|m[\\x5c'\\\"]*o[\\x5c'\\\"]*d|p[\\x5c'\\\"]*c[\\x5c'\\\"]*i|u[\\x5c'\\\"]*s[\\x5c'\\\"]*b|-[\\x5c'\\\"]*F|h[\\x5c'\\\"]*w|o[\\x5c'\\\"]*f))?|z[\\x5c'\\\"]*(?:(?:[ef][\\x5c'\\\"]*)?g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|c[\\x5c'\\\"]*(?:a[\\x5c'\\\"]*t|m[\\x5c'\\\"]*p)|m[\\x5c'\\\"]*(?:o[\\x5c'\\\"]*r[\\x5c'\\\"]*e|a)|d[\\x5c'\\\"]*i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|l[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*s)|o[\\x5c'\\\"]*(?:g[\\x5c'\\\"]*(?:(?:n[\\x5c'\\\"]*a[\\x5c'\\\"]*m|s[\\x5c'\\\"]*a[\\x5c'\\\"]*v)[\\x5c'\\\"]*e|i[\\x5c'\\\"]*n[\\x5c'\\\"]*c[\\x5c'\\\"]*t[\\x5c'\\\"]*l)|c[\\x5c'\\\"]*a[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*e|l)[\\x5c'\\\"]*(?:\\s|<|>).*)|e[\\x5c'\\\"]*s[\\x5c'\\\"]*s[\\x5c'\\\"]*(?:(?:f[\\x5c'\\\"]*i[\\x5c'\\\"]*l|p[\\x5c'\\\"]*i[\\x5c'\\\"]*p)[\\x5c'\\\"]*e|e[\\x5c'\\\"]*c[\\x5c'\\\"]*h[\\x5c'\\\"]*o|(?:\\s|<|>).*)|a[\\x5c'\\\"]*s[\\x5c'\\\"]*t[\\x5c'\\\"]*(?:l[\\x5c'\\\"]*o[\\x5c'\\\"]*g(?:[\\x5c'\\\"]*i[\\x5c'\\\"]*n)?|c[\\x5c'\\\"]*o[\\x5c'\\\"]*m[\\x5c'\\\"]*m|(?:\\s|<|>).*)|d[\\x5c'\\\"]*(?:c[\\x5c'\\\"]*o[\\x5c'\\\"]*n[\\x5c'\\\"]*f[\\x5c'\\\"]*i[\\x5c'\\\"]*g|d[\\x5c'\\\"]*(?:\\s|<|>).*)|(?:[np]|i[\\x5c'\\\"]*n[\\x5c'\\\"]*k[\\x5c'\\\"]*s|y[\\x5c'\\\"]*n[\\x5c'\\\"]*x)[\\x5c'\\\"]*(?:\\s|<|>).*|u[\\x5c'\\\"]*a[\\x5c'\\\"]*(?:5[\\x5c'\\\"]*\\.[\\x5c'\\\"]*[1234]|(?:\\s|<|>).*)|f[\\x5c'\\\"]*t[\\x5c'\\\"]*p(?:[\\x5c'\\\"]*g[\\x5c'\\\"]*e[\\x5c'\\\"]*t)?|t[\\x5c'\\\"]*r[\\x5c'\\\"]*a[\\x5c'\\\"]*c[\\x5c'\\\"]*e)|c[\\x5c'\\\"]*(?:o[\\x5c'\\\"]*(?:m[\\x5c'\\\"]*(?:p[\\x5c'\\\"]*(?:r[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*s[\\x5c'\\\"]*(?:\\s|<|>).*|o[\\x5c'\\\"]*s[\\x5c'\\\"]*e[\\x5c'\\\"]*r)|m[\\x5c'\\\"]*a[\\x5c'\\\"]*n[\\x5c'\\\"]*d[\\x5c'\\\"]*(?:\\s|<|>).*)|p[\\x5c'\\\"]*r[\\x5c'\\\"]*o[\\x5c'\\\"]*c)|h[\\x5c'\\\"]*(?:d[\\x5c'\\\"]*i[\\x5c'\\\"]*r[\\x5c'\\\"]*(?:\\s|<|>).*|f[\\x5c'\\\"]*l[\\x5c'\\\"]*a[\\x5c'\\\"]*g[\\x5c'\\\"]*s|a[\\x5c'\\\"]*t[\\x5c'\\\"]*t[\\x5c'\\\"]*r|m[\\x5c'\\\"]*o[\\x5c'\\\"]*d)|p[\\x5c'\\\"]*(?:u[\\x5c'\\\"]*l[\\x5c'\\\"]*i[\\x5c'\\\"]*m[\\x5c'\\\"]*i[\\x5c'\\\"]*t|(?:\\s|<|>).*|a[\\x5c'\\\"]*n|i[\\x5c'\\\"]*o)|(?:a[\\x5c'\\\"]*(?:p[\\x5c'\\\"]*s[\\x5c'\\\"]*h|t)|c)[\\x5c'\\\"]*(?:\\s|<|>).*|e[\\x5c'\\\"]*r[\\x5c'\\\"]*t[\\x5c'\\\"]*b[\\x5c'\\\"]*o[\\x5c'\\\"]*t|r[\\x5c'\\\"]*o[\\x5c'\\\"]*n[\\x5c'\\\"]*t[\\x5c'\\\"]*a[\\x5c'\\\"]*b|u[\\x5c'\\\"]*r[\\x5c'\\\"]*l|[89][\\x5c'\\\"]*9|s[\\x5c'\\\"]*h)|b[\\x5c'\\\"]*(?:z[\\x5c'\\\"]*(?:(?:[ef][\\x5c'\\\"]*)?g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|d[\\x5c'\\\"]*i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|l[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*s|m[\\x5c'\\\"]*o[\\x5c'\\\"]*r[\\x5c'\\\"]*e|c[\\x5c'\\\"]*a[\\x5c'\\\"]*t|i[\\x5c'\\\"]*p[\\x5c'\\\"]*2)|u[\\x5c'\\\"]*(?:s[\\x5c'\\\"]*(?:y[\\x5c'\\\"]*b[\\x5c'\\\"]*o[\\x5c'\\\"]*x|c[\\x5c'\\\"]*t[\\x5c'\\\"]*l)|n[\\x5c'\\\"]*d[\\x5c'\\\"]*l[\\x5c'\\\"]*e[\\x5c'\\\"]*r[\\x5c'\\\"]*(?:\\s|<|>).*|i[\\x5c'\\\"]*l[\\x5c'\\\"]*t[\\x5c'\\\"]*i[\\x5c'\\\"]*n)|s[\\x5c'\\\"]*d[\\x5c'\\\"]*(?:c[\\x5c'\\\"]*a[\\x5c'\\\"]*t|i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|t[\\x5c'\\\"]*a[\\x5c'\\\"]*r)|a[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*c[\\x5c'\\\"]*h[\\x5c'\\\"]*(?:\\s|<|>).*|s[\\x5c'\\\"]*h)|r[\\x5c'\\\"]*e[\\x5c'\\\"]*a[\\x5c'\\\"]*k[\\x5c'\\\"]*s[\\x5c'\\\"]*w)|e[\\x5c'\\\"]*(?:x[\\x5c'\\\"]*(?:p[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*c[\\x5c'\\\"]*t[\\x5c'\\\"]*(?:\\s|<|>).*|a[\\x5c'\\\"]*n[\\x5c'\\\"]*d|o[\\x5c'\\\"]*r[\\x5c'\\\"]*t|r)|(?:e[\\x5c'\\\"]*c[\\x5c'\\\"]*)?(?:\\s|<|>).*)|n[\\x5c'\\\"]*(?:v(?:[\\x5c'\\\"]*-[\\x5c'\\\"]*u[\\x5c'\\\"]*p[\\x5c'\\\"]*d[\\x5c'\\\"]*a[\\x5c'\\\"]*t[\\x5c'\\\"]*e)?|d[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*f|s[\\x5c'\\\"]*w))|(?:a[\\x5c'\\\"]*s[\\x5c'\\\"]*y[\\x5c'\\\"]*_[\\x5c'\\\"]*i[\\x5c'\\\"]*n[\\x5c'\\\"]*s[\\x5c'\\\"]*t[\\x5c'\\\"]*a[\\x5c'\\\"]*l|v[\\x5c'\\\"]*a)[\\x5c'\\\"]*l|(?:c[\\x5c'\\\"]*h[\\x5c'\\\"]*o|d)[\\x5c'\\\"]*(?:\\s|<|>).*|g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|m[\\x5c'\\\"]*a[\\x5c'\\\"]*c[\\x5c'\\\"]*s|s[\\x5c'\\\"]*a[\\x5c'\\\"]*c)|f[\\x5c'\\\"]*(?:i(?:[\\x5c'\\\"]*(?:l[\\x5c'\\\"]*e[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*t|(?:\\s|<|>).*)|n[\\x5c'\\\"]*d[\\x5c'\\\"]*(?:\\s|<|>).*|s[\\x5c'\\\"]*h))?|t[\\x5c'\\\"]*p[\\x5c'\\\"]*(?:s[\\x5c'\\\"]*t[\\x5c'\\\"]*a[\\x5c'\\\"]*t[\\x5c'\\\"]*s|w[\\x5c'\\\"]*h[\\x5c'\\\"]*o|(?:\\s|<|>).*)|(?:e[\\x5c'\\\"]*t[\\x5c'\\\"]*c[\\x5c'\\\"]*h|l[\\x5c'\\\"]*o[\\x5c'\\\"]*c[\\x5c'\\\"]*k|c)[\\x5c'\\\"]*(?:\\s|<|>).*|u[\\x5c'\\\"]*n[\\x5c'\\\"]*c[\\x5c'\\\"]*t[\\x5c'\\\"]*i[\\x5c'\\\"]*o[\\x5c'\\\"]*n|o[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*a[\\x5c'\\\"]*c[\\x5c'\\\"]*h|g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p)|i[\\x5c'\\\"]*(?:p[\\x5c'\\\"]*(?:(?:6[\\x5c'\\\"]*)?t[\\x5c'\\\"]*a[\\x5c'\\\"]*b[\\x5c'\\\"]*l[\\x5c'\\\"]*e[\\x5c'\\\"]*s|c[\\x5c'\\\"]*o[\\x5c'\\\"]*n[\\x5c'\\\"]*f[\\x5c'\\\"]*i[\\x5c'\\\"]*g)|r[\\x5c'\\\"]*b(?:[\\x5c'\\\"]*(?:2[\\x5c'\\\"]*[01234567]|1(?:[\\x5c'\\\"]*[89])?|3[\\x5c'\\\"]*0))?|f[\\x5c'\\\"]*c[\\x5c'\\\"]*o[\\x5c'\\\"]*n[\\x5c'\\\"]*f[\\x5c'\\\"]*i[\\x5c'\\\"]*g|o[\\x5c'\\\"]*n[\\x5c'\\\"]*i[\\x5c'\\\"]*c[\\x5c'\\\"]*e|d[\\x5c'\\\"]*(?:\\s|<|>).*)|h[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*(?:d[\\x5c'\\\"]*i[\\x5c'\\\"]*g[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*t|p[\\x5c'\\\"]*a[\\x5c'\\\"]*s[\\x5c'\\\"]*s[\\x5c'\\\"]*w[\\x5c'\\\"]*d)|o[\\x5c'\\\"]*s[\\x5c'\\\"]*t[\\x5c'\\\"]*(?:n[\\x5c'\\\"]*a[\\x5c'\\\"]*m[\\x5c'\\\"]*e|i[\\x5c'\\\"]*d)|(?:e[\\x5c'\\\"]*a[\\x5c'\\\"]*d|u[\\x5c'\\\"]*p)[\\x5c'\\\"]*(?:\\s|<|>).*|i[\\x5c'\\\"]*s[\\x5c'\\\"]*t[\\x5c'\\\"]*o[\\x5c'\\\"]*r[\\x5c'\\\"]*y)|a[\\x5c'\\\"]*(?:l[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*a[\\x5c'\\\"]*s[\\x5c'\\\"]*(?:\\s|<|>).*|p[\\x5c'\\\"]*i[\\x5c'\\\"]*n[\\x5c'\\\"]*e)|p[\\x5c'\\\"]*t[\\x5c'\\\"]*(?:-[\\x5c'\\\"]*g[\\x5c'\\\"]*e[\\x5c'\\\"]*t|(?:\\s|<|>).*)|d[\\x5c'\\\"]*d[\\x5c'\\\"]*u[\\x5c'\\\"]*s[\\x5c'\\\"]*e[\\x5c'\\\"]*r|r[\\x5c'\\\"]*(?:c[\\x5c'\\\"]*h[\\x5c'\\\"]*(?:\\s|<|>).*|p)|(?:w[\\x5c'\\\"]*[ks]|t)[\\x5c'\\\"]*(?:\\s|<|>).*)|g[\\x5c'\\\"]*(?:(?:e[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*f[\\x5c'\\\"]*a[\\x5c'\\\"]*c[\\x5c'\\\"]*l|m)|r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|o)[\\x5c'\\\"]*(?:\\s|<|>).*|z[\\x5c'\\\"]*(?:c[\\x5c'\\\"]*a[\\x5c'\\\"]*t|i[\\x5c'\\\"]*p)|u[\\x5c'\\\"]*n[\\x5c'\\\"]*z[\\x5c'\\\"]*i[\\x5c'\\\"]*p|c[\\x5c'\\\"]*c(?:[\\x5c'\\\"]*(?:\\s|<|>).*)?|i[\\x5c'\\\"]*t(?:[\\x5c'\\\"]*(?:\\s|<|>).*)?|d[\\x5c'\\\"]*b)|d[\\x5c'\\\"]*(?:h[\\x5c'\\\"]*c[\\x5c'\\\"]*l[\\x5c'\\\"]*i[\\x5c'\\\"]*e[\\x5c'\\\"]*n[\\x5c'\\\"]*t|(?:i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|u)[\\x5c'\\\"]*(?:\\s|<|>).*|(?:m[\\x5c'\\\"]*e[\\x5c'\\\"]*s|p[\\x5c'\\\"]*k)[\\x5c'\\\"]*g|o[\\x5c'\\\"]*(?:a[\\x5c'\\\"]*s|n[\\x5c'\\\"]*e)|a[\\x5c'\\\"]*s[\\x5c'\\\"]*h)|j[\\x5c'\\\"]*(?:o[\\x5c'\\\"]*(?:u[\\x5c'\\\"]*r[\\x5c'\\\"]*n[\\x5c'\\\"]*a[\\x5c'\\\"]*l[\\x5c'\\\"]*c[\\x5c'\\\"]*t[\\x5c'\\\"]*l|b[\\x5c'\\\"]*s[\\x5c'\\\"]*(?:\\s|<|>).*)|a[\\x5c'\\\"]*v[\\x5c'\\\"]*a[\\x5c'\\\"]*(?:\\s|<|>).*|e[\\x5c'\\\"]*x[\\x5c'\\\"]*e[\\x5c'\\\"]*c)|k[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*l[\\x5c'\\\"]*l[\\x5c'\\\"]*(?:a[\\x5c'\\\"]*l[\\x5c'\\\"]*l|(?:\\s|<|>).*)|s[\\x5c'\\\"]*h)|G[\\x5c'\\\"]*E[\\x5c'\\\"]*T[\\x5c'\\\"]*(?:\\s|<|>).*|7[\\x5c'\\\"]*z(?:[\\x5c'\\\"]*[ar])?)\\b",
             "options": {
               "case_sensitive": true,
               "min_length": 3
@@ -213,7 +213,7 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?:;|\\{|\\||\\|\\||&|&&|\\n|\\r|`)\\s*[\\(,@\\'\\\"\\s]*(?:[\\w'\\\"\\./]+/|[\\\\\\\\'\\\"\\^]*\\w[\\\\\\\\'\\\"\\^]*:.*\\\\\\\\|[\\^\\.\\w '\\\"/\\\\\\\\]*\\\\\\\\)?[\\\"\\^]*(?:s[\\\"\\^]*(?:y[\\\"\\^]*s[\\\"\\^]*(?:t[\\\"\\^]*e[\\\"\\^]*m[\\\"\\^]*(?:p[\\\"\\^]*r[\\\"\\^]*o[\\\"\\^]*p[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*e[\\\"\\^]*s[\\\"\\^]*(?:d[\\\"\\^]*a[\\\"\\^]*t[\\\"\\^]*a[\\\"\\^]*e[\\\"\\^]*x[\\\"\\^]*e[\\\"\\^]*c[\\\"\\^]*u[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*o[\\\"\\^]*n[\\\"\\^]*p[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*v[\\\"\\^]*e[\\\"\\^]*n[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*o[\\\"\\^]*n|(?:p[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*f[\\\"\\^]*o[\\\"\\^]*r[\\\"\\^]*m[\\\"\\^]*a[\\\"\\^]*n[\\\"\\^]*c|h[\\\"\\^]*a[\\\"\\^]*r[\\\"\\^]*d[\\\"\\^]*w[\\\"\\^]*a[\\\"\\^]*r)[\\\"\\^]*e|a[\\\"\\^]*d[\\\"\\^]*v[\\\"\\^]*a[\\\"\\^]*n[\\\"\\^]*c[\\\"\\^]*e[\\\"\\^]*d)|i[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*o)|k[\\\"\\^]*e[\\\"\\^]*y|d[\\\"\\^]*m)|h[\\\"\\^]*(?:o[\\\"\\^]*(?:w[\\\"\\^]*(?:g[\\\"\\^]*r[\\\"\\^]*p|m[\\\"\\^]*b[\\\"\\^]*r)[\\\"\\^]*s|r[\\\"\\^]*t[\\\"\\^]*c[\\\"\\^]*u[\\\"\\^]*t)|e[\\\"\\^]*l[\\\"\\^]*l[\\\"\\^]*r[\\\"\\^]*u[\\\"\\^]*n[\\\"\\^]*a[\\\"\\^]*s|u[\\\"\\^]*t[\\\"\\^]*d[\\\"\\^]*o[\\\"\\^]*w[\\\"\\^]*n|r[\\\"\\^]*p[\\\"\\^]*u[\\\"\\^]*b[\\\"\\^]*w|a[\\\"\\^]*r[\\\"\\^]*e|i[\\\"\\^]*f[\\\"\\^]*t)|e[\\\"\\^]*(?:t[\\\"\\^]*(?:(?:x[\\\"\\^]*)?(?:[\\s,;]|\\.|/|<|>).*|l[\\\"\\^]*o[\\\"\\^]*c[\\\"\\^]*a[\\\"\\^]*l)|c[\\\"\\^]*p[\\\"\\^]*o[\\\"\\^]*l|l[\\\"\\^]*e[\\\"\\^]*c[\\\"\\^]*t)|c[\\\"\\^]*(?:h[\\\"\\^]*t[\\\"\\^]*a[\\\"\\^]*s[\\\"\\^]*k[\\\"\\^]*s|l[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*t)|o[\\\"\\^]*r[\\\"\\^]*t[\\\"\\^]*(?:(?:[\\s,;]|\\.|/|<|>).*|\\.[\\\"\\^]*\\*[\\\"\\^]*<|\\/)|u[\\\"\\^]*b[\\\"\\^]*(?:i[\\\"\\^]*n[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*l|s[\\\"\\^]*t)|t[\\\"\\^]*a[\\\"\\^]*r[\\\"\\^]*t[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|i[\\\"\\^]*g[\\\"\\^]*v[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*i[\\\"\\^]*f|l[\\\"\\^]*(?:e[\\\"\\^]*e[\\\"\\^]*p|m[\\\"\\^]*g[\\\"\\^]*r)|f[\\\"\\^]*c|v[\\\"\\^]*n)|p[\\\"\\^]*(?:s[\\\"\\^]*(?:s[\\\"\\^]*(?:h[\\\"\\^]*u[\\\"\\^]*t[\\\"\\^]*d[\\\"\\^]*o[\\\"\\^]*w[\\\"\\^]*n|e[\\\"\\^]*r[\\\"\\^]*v[\\\"\\^]*i[\\\"\\^]*c[\\\"\\^]*e|u[\\\"\\^]*s[\\\"\\^]*p[\\\"\\^]*e[\\\"\\^]*n[\\\"\\^]*d)|l[\\\"\\^]*(?:o[\\\"\\^]*g[\\\"\\^]*(?:g[\\\"\\^]*e[\\\"\\^]*d[\\\"\\^]*o[\\\"\\^]*n|l[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*t)|i[\\\"\\^]*s[\\\"\\^]*t)|p[\\\"\\^]*(?:a[\\\"\\^]*s[\\\"\\^]*s[\\\"\\^]*w[\\\"\\^]*d|i[\\\"\\^]*n[\\\"\\^]*g)|g[\\\"\\^]*e[\\\"\\^]*t[\\\"\\^]*s[\\\"\\^]*i[\\\"\\^]*d|e[\\\"\\^]*x[\\\"\\^]*e[\\\"\\^]*c|f[\\\"\\^]*i[\\\"\\^]*l[\\\"\\^]*e|i[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*o|k[\\\"\\^]*i[\\\"\\^]*l[\\\"\\^]*l)|o[\\\"\\^]*(?:w[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*(?:s[\\\"\\^]*h[\\\"\\^]*e[\\\"\\^]*l[\\\"\\^]*l(?:[\\\"\\^]*_[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*e)?|c[\\\"\\^]*f[\\\"\\^]*g)|r[\\\"\\^]*t[\\\"\\^]*q[\\\"\\^]*r[\\\"\\^]*y|p[\\\"\\^]*d)|r[\\\"\\^]*(?:i[\\\"\\^]*n[\\\"\\^]*t[\\\"\\^]*(?:(?:[\\s,;]|\\.|/|<|>).*|b[\\\"\\^]*r[\\\"\\^]*m)|n[\\\"\\^]*(?:c[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*g|m[\\\"\\^]*n[\\\"\\^]*g[\\\"\\^]*r)|o[\\\"\\^]*m[\\\"\\^]*p[\\\"\\^]*t)|a[\\\"\\^]*t[\\\"\\^]*h[\\\"\\^]*(?:p[\\\"\\^]*i[\\\"\\^]*n[\\\"\\^]*g|(?:[\\s,;]|\\.|/|<|>).*)|e[\\\"\\^]*r[\\\"\\^]*(?:l(?:[\\\"\\^]*(?:s[\\\"\\^]*h|5))?|f[\\\"\\^]*m[\\\"\\^]*o[\\\"\\^]*n)|y[\\\"\\^]*t[\\\"\\^]*h[\\\"\\^]*o[\\\"\\^]*n(?:[\\\"\\^]*(?:3(?:[\\\"\\^]*m)?|2))?|k[\\\"\\^]*g[\\\"\\^]*m[\\\"\\^]*g[\\\"\\^]*r|h[\\\"\\^]*p(?:[\\\"\\^]*[57])?|u[\\\"\\^]*s[\\\"\\^]*h[\\\"\\^]*d|i[\\\"\\^]*n[\\\"\\^]*g)|r[\\\"\\^]*(?:e[\\\"\\^]*(?:(?:p[\\\"\\^]*l[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*e|n(?:[\\\"\\^]*a[\\\"\\^]*m[\\\"\\^]*e)?|s[\\\"\\^]*e[\\\"\\^]*t)[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|g[\\\"\\^]*(?:s[\\\"\\^]*v[\\\"\\^]*r[\\\"\\^]*3[\\\"\\^]*2|e[\\\"\\^]*d[\\\"\\^]*i[\\\"\\^]*t|(?:[\\s,;]|\\.|/|<|>).*|i[\\\"\\^]*n[\\\"\\^]*i)|c[\\\"\\^]*(?:d[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*c|o[\\\"\\^]*v[\\\"\\^]*e[\\\"\\^]*r)|k[\\\"\\^]*e[\\\"\\^]*y[\\\"\\^]*w[\\\"\\^]*i[\\\"\\^]*z)|u[\\\"\\^]*(?:n[\\\"\\^]*(?:d[\\\"\\^]*l[\\\"\\^]*l[\\\"\\^]*3[\\\"\\^]*2|a[\\\"\\^]*s)|b[\\\"\\^]*y[\\\"\\^]*(?:1(?:[\\\"\\^]*[89])?|2[\\\"\\^]*[012]))|a[\\\"\\^]*(?:s[\\\"\\^]*(?:p[\\\"\\^]*h[\\\"\\^]*o[\\\"\\^]*n[\\\"\\^]*e|d[\\\"\\^]*i[\\\"\\^]*a[\\\"\\^]*l)|r[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*)|m[\\\"\\^]*(?:(?:d[\\\"\\^]*i[\\\"\\^]*r[\\\"\\^]*)?(?:[\\s,;]|\\.|/|<|>).*|t[\\\"\\^]*s[\\\"\\^]*h[\\\"\\^]*a[\\\"\\^]*r[\\\"\\^]*e)|o[\\\"\\^]*(?:u[\\\"\\^]*t[\\\"\\^]*e[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|b[\\\"\\^]*o[\\\"\\^]*c[\\\"\\^]*o[\\\"\\^]*p[\\\"\\^]*y)|s[\\\"\\^]*(?:t[\\\"\\^]*r[\\\"\\^]*u[\\\"\\^]*i|y[\\\"\\^]*n[\\\"\\^]*c)|d[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*)|t[\\\"\\^]*(?:a[\\\"\\^]*(?:s[\\\"\\^]*k[\\\"\\^]*(?:k[\\\"\\^]*i[\\\"\\^]*l[\\\"\\^]*l|l[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*t|s[\\\"\\^]*c[\\\"\\^]*h[\\\"\\^]*d|m[\\\"\\^]*g[\\\"\\^]*r)|k[\\\"\\^]*e[\\\"\\^]*o[\\\"\\^]*w[\\\"\\^]*n)|(?:i[\\\"\\^]*m[\\\"\\^]*e[\\\"\\^]*o[\\\"\\^]*u|p[\\\"\\^]*m[\\\"\\^]*i[\\\"\\^]*n[\\\"\\^]*i|e[\\\"\\^]*l[\\\"\\^]*n[\\\"\\^]*e|l[\\\"\\^]*i[\\\"\\^]*s)[\\\"\\^]*t|s[\\\"\\^]*(?:d[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*c[\\\"\\^]*o|s[\\\"\\^]*h[\\\"\\^]*u[\\\"\\^]*t[\\\"\\^]*d)[\\\"\\^]*n|y[\\\"\\^]*p[\\\"\\^]*e[\\\"\\^]*(?:p[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*f|(?:[\\s,;]|\\.|/|<|>).*)|r[\\\"\\^]*(?:a[\\\"\\^]*c[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*t|e[\\\"\\^]*e))|w[\\\"\\^]*(?:i[\\\"\\^]*n[\\\"\\^]*(?:d[\\\"\\^]*i[\\\"\\^]*f[\\\"\\^]*f|m[\\\"\\^]*s[\\\"\\^]*d[\\\"\\^]*p|v[\\\"\\^]*a[\\\"\\^]*r|r[\\\"\\^]*[ms])|u[\\\"\\^]*(?:a[\\\"\\^]*(?:u[\\\"\\^]*c[\\\"\\^]*l[\\\"\\^]*t|p[\\\"\\^]*p)|s[\\\"\\^]*a)|s[\\\"\\^]*c[\\\"\\^]*(?:r[\\\"\\^]*i[\\\"\\^]*p[\\\"\\^]*t|u[\\\"\\^]*i)|e[\\\"\\^]*v[\\\"\\^]*t[\\\"\\^]*u[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*l|m[\\\"\\^]*i[\\\"\\^]*(?:m[\\\"\\^]*g[\\\"\\^]*m[\\\"\\^]*t|c)|a[\\\"\\^]*i[\\\"\\^]*t[\\\"\\^]*f[\\\"\\^]*o[\\\"\\^]*r|h[\\\"\\^]*o[\\\"\\^]*a[\\\"\\^]*m[\\\"\\^]*i|g[\\\"\\^]*e[\\\"\\^]*t)|u[\\\"\\^]*(?:s[\\\"\\^]*(?:e[\\\"\\^]*r[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*c[\\\"\\^]*o[\\\"\\^]*u[\\\"\\^]*n[\\\"\\^]*t[\\\"\\^]*c[\\\"\\^]*o[\\\"\\^]*n[\\\"\\^]*t[\\\"\\^]*r[\\\"\\^]*o[\\\"\\^]*l[\\\"\\^]*s[\\\"\\^]*e[\\\"\\^]*t[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*n[\\\"\\^]*g[\\\"\\^]*s|r[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*a[\\\"\\^]*t)|n[\\\"\\^]*(?:r[\\\"\\^]*a[\\\"\\^]*r|z[\\\"\\^]*i[\\\"\\^]*p))|q[\\\"\\^]*(?:u[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*y[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|p[\\\"\\^]*r[\\\"\\^]*o[\\\"\\^]*c[\\\"\\^]*e[\\\"\\^]*s[\\\"\\^]*s|w[\\\"\\^]*i[\\\"\\^]*n[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*a|g[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*p)|o[\\\"\\^]*(?:d[\\\"\\^]*b[\\\"\\^]*c[\\\"\\^]*(?:a[\\\"\\^]*d[\\\"\\^]*3[\\\"\\^]*2|c[\\\"\\^]*o[\\\"\\^]*n[\\\"\\^]*f)|p[\\\"\\^]*e[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*i[\\\"\\^]*l[\\\"\\^]*e[\\\"\\^]*s)|v[\\\"\\^]*(?:o[\\\"\\^]*l[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|e[\\\"\\^]*r[\\\"\\^]*i[\\\"\\^]*f[\\\"\\^]*y)|x[\\\"\\^]*c[\\\"\\^]*(?:a[\\\"\\^]*c[\\\"\\^]*l[\\\"\\^]*s|o[\\\"\\^]*p[\\\"\\^]*y)|z[\\\"\\^]*i[\\\"\\^]*p[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*)(?:\\.[\\\"\\^]*\\w+)?\\b",
+            "regex": "(?:[;\\n\\r`]|(?:$\\(|<)\\(|(?:\\|)?\\||\\(\\s*\\)|\\$[(?:{]|&?&|>\\|\\{)\\s*(?:(?:\\w+=(?:[^\\s]*|\\$.*|\\$.*|<.*|>.*|\\'.*\\'|\\\".*\\\")\\s+|(?:\\s*\\(|!)\\s*|\\{|\\$))*\\s*(?:['\\\"])*(?:[\\?\\*\\[\\]\\(\\)\\-\\|+\\w'\\\"\\./\\x5c]+/)?[\\x5c'\\\"]*(?:s[\\\"\\^]*(?:y[\\\"\\^]*s[\\\"\\^]*(?:t[\\\"\\^]*e[\\\"\\^]*m[\\\"\\^]*(?:p[\\\"\\^]*r[\\\"\\^]*o[\\\"\\^]*p[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*e[\\\"\\^]*s[\\\"\\^]*(?:d[\\\"\\^]*a[\\\"\\^]*t[\\\"\\^]*a[\\\"\\^]*e[\\\"\\^]*x[\\\"\\^]*e[\\\"\\^]*c[\\\"\\^]*u[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*o[\\\"\\^]*n[\\\"\\^]*p[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*v[\\\"\\^]*e[\\\"\\^]*n[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*o[\\\"\\^]*n|(?:p[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*f[\\\"\\^]*o[\\\"\\^]*r[\\\"\\^]*m[\\\"\\^]*a[\\\"\\^]*n[\\\"\\^]*c|h[\\\"\\^]*a[\\\"\\^]*r[\\\"\\^]*d[\\\"\\^]*w[\\\"\\^]*a[\\\"\\^]*r)[\\\"\\^]*e|a[\\\"\\^]*d[\\\"\\^]*v[\\\"\\^]*a[\\\"\\^]*n[\\\"\\^]*c[\\\"\\^]*e[\\\"\\^]*d)|i[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*o)|k[\\\"\\^]*e[\\\"\\^]*y|d[\\\"\\^]*m)|h[\\\"\\^]*(?:o[\\\"\\^]*(?:w[\\\"\\^]*(?:g[\\\"\\^]*r[\\\"\\^]*p|m[\\\"\\^]*b[\\\"\\^]*r)[\\\"\\^]*s|r[\\\"\\^]*t[\\\"\\^]*c[\\\"\\^]*u[\\\"\\^]*t)|e[\\\"\\^]*l[\\\"\\^]*l[\\\"\\^]*r[\\\"\\^]*u[\\\"\\^]*n[\\\"\\^]*a[\\\"\\^]*s|u[\\\"\\^]*t[\\\"\\^]*d[\\\"\\^]*o[\\\"\\^]*w[\\\"\\^]*n|r[\\\"\\^]*p[\\\"\\^]*u[\\\"\\^]*b[\\\"\\^]*w|a[\\\"\\^]*r[\\\"\\^]*e|i[\\\"\\^]*f[\\\"\\^]*t)|e[\\\"\\^]*(?:t[\\\"\\^]*(?:(?:x[\\\"\\^]*)?(?:[\\s,;]|\\.|/|<|>).*|l[\\\"\\^]*o[\\\"\\^]*c[\\\"\\^]*a[\\\"\\^]*l)|c[\\\"\\^]*p[\\\"\\^]*o[\\\"\\^]*l|l[\\\"\\^]*e[\\\"\\^]*c[\\\"\\^]*t)|c[\\\"\\^]*(?:h[\\\"\\^]*t[\\\"\\^]*a[\\\"\\^]*s[\\\"\\^]*k[\\\"\\^]*s|l[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*t)|u[\\\"\\^]*b[\\\"\\^]*(?:i[\\\"\\^]*n[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*l|s[\\\"\\^]*t)|(?:t[\\\"\\^]*a|o)[\\\"\\^]*r[\\\"\\^]*t[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|i[\\\"\\^]*g[\\\"\\^]*v[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*i[\\\"\\^]*f|l[\\\"\\^]*(?:e[\\\"\\^]*e[\\\"\\^]*p|m[\\\"\\^]*g[\\\"\\^]*r)|f[\\\"\\^]*c|v[\\\"\\^]*n)|p[\\\"\\^]*(?:s[\\\"\\^]*(?:s[\\\"\\^]*(?:h[\\\"\\^]*u[\\\"\\^]*t[\\\"\\^]*d[\\\"\\^]*o[\\\"\\^]*w[\\\"\\^]*n|e[\\\"\\^]*r[\\\"\\^]*v[\\\"\\^]*i[\\\"\\^]*c[\\\"\\^]*e|u[\\\"\\^]*s[\\\"\\^]*p[\\\"\\^]*e[\\\"\\^]*n[\\\"\\^]*d)|l[\\\"\\^]*(?:o[\\\"\\^]*g[\\\"\\^]*(?:g[\\\"\\^]*e[\\\"\\^]*d[\\\"\\^]*o[\\\"\\^]*n|l[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*t)|i[\\\"\\^]*s[\\\"\\^]*t)|p[\\\"\\^]*(?:a[\\\"\\^]*s[\\\"\\^]*s[\\\"\\^]*w[\\\"\\^]*d|i[\\\"\\^]*n[\\\"\\^]*g)|g[\\\"\\^]*e[\\\"\\^]*t[\\\"\\^]*s[\\\"\\^]*i[\\\"\\^]*d|e[\\\"\\^]*x[\\\"\\^]*e[\\\"\\^]*c|f[\\\"\\^]*i[\\\"\\^]*l[\\\"\\^]*e|i[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*o|k[\\\"\\^]*i[\\\"\\^]*l[\\\"\\^]*l)|o[\\\"\\^]*(?:w[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*(?:s[\\\"\\^]*h[\\\"\\^]*e[\\\"\\^]*l[\\\"\\^]*l(?:[\\\"\\^]*_[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*e)?|c[\\\"\\^]*f[\\\"\\^]*g)|r[\\\"\\^]*t[\\\"\\^]*q[\\\"\\^]*r[\\\"\\^]*y|p[\\\"\\^]*d)|r[\\\"\\^]*(?:i[\\\"\\^]*n[\\\"\\^]*t[\\\"\\^]*(?:(?:[\\s,;]|\\.|/|<|>).*|b[\\\"\\^]*r[\\\"\\^]*m)|n[\\\"\\^]*(?:c[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*g|m[\\\"\\^]*n[\\\"\\^]*g[\\\"\\^]*r)|o[\\\"\\^]*m[\\\"\\^]*p[\\\"\\^]*t)|a[\\\"\\^]*t[\\\"\\^]*h[\\\"\\^]*(?:p[\\\"\\^]*i[\\\"\\^]*n[\\\"\\^]*g|(?:[\\s,;]|\\.|/|<|>).*)|e[\\\"\\^]*r[\\\"\\^]*(?:l(?:[\\\"\\^]*(?:s[\\\"\\^]*h|5))?|f[\\\"\\^]*m[\\\"\\^]*o[\\\"\\^]*n)|y[\\\"\\^]*t[\\\"\\^]*h[\\\"\\^]*o[\\\"\\^]*n(?:[\\\"\\^]*(?:3(?:[\\\"\\^]*m)?|2))?|k[\\\"\\^]*g[\\\"\\^]*m[\\\"\\^]*g[\\\"\\^]*r|h[\\\"\\^]*p(?:[\\\"\\^]*[57])?|u[\\\"\\^]*s[\\\"\\^]*h[\\\"\\^]*d|i[\\\"\\^]*n[\\\"\\^]*g)|r[\\\"\\^]*(?:e[\\\"\\^]*(?:(?:p[\\\"\\^]*l[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*e|n(?:[\\\"\\^]*a[\\\"\\^]*m[\\\"\\^]*e)?|s[\\\"\\^]*e[\\\"\\^]*t)[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|g[\\\"\\^]*(?:s[\\\"\\^]*v[\\\"\\^]*r[\\\"\\^]*3[\\\"\\^]*2|e[\\\"\\^]*d[\\\"\\^]*i[\\\"\\^]*t|(?:[\\s,;]|\\.|/|<|>).*|i[\\\"\\^]*n[\\\"\\^]*i)|c[\\\"\\^]*(?:d[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*c|o[\\\"\\^]*v[\\\"\\^]*e[\\\"\\^]*r)|k[\\\"\\^]*e[\\\"\\^]*y[\\\"\\^]*w[\\\"\\^]*i[\\\"\\^]*z)|u[\\\"\\^]*(?:n[\\\"\\^]*(?:d[\\\"\\^]*l[\\\"\\^]*l[\\\"\\^]*3[\\\"\\^]*2|a[\\\"\\^]*s)|b[\\\"\\^]*y[\\\"\\^]*(?:1(?:[\\\"\\^]*[89])?|2[\\\"\\^]*[012]))|a[\\\"\\^]*(?:s[\\\"\\^]*(?:p[\\\"\\^]*h[\\\"\\^]*o[\\\"\\^]*n[\\\"\\^]*e|d[\\\"\\^]*i[\\\"\\^]*a[\\\"\\^]*l)|r[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*)|m[\\\"\\^]*(?:(?:d[\\\"\\^]*i[\\\"\\^]*r[\\\"\\^]*)?(?:[\\s,;]|\\.|/|<|>).*|t[\\\"\\^]*s[\\\"\\^]*h[\\\"\\^]*a[\\\"\\^]*r[\\\"\\^]*e)|o[\\\"\\^]*(?:u[\\\"\\^]*t[\\\"\\^]*e[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|b[\\\"\\^]*o[\\\"\\^]*c[\\\"\\^]*o[\\\"\\^]*p[\\\"\\^]*y)|s[\\\"\\^]*(?:t[\\\"\\^]*r[\\\"\\^]*u[\\\"\\^]*i|y[\\\"\\^]*n[\\\"\\^]*c)|d[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*)|t[\\\"\\^]*(?:a[\\\"\\^]*(?:s[\\\"\\^]*k[\\\"\\^]*(?:k[\\\"\\^]*i[\\\"\\^]*l[\\\"\\^]*l|l[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*t|s[\\\"\\^]*c[\\\"\\^]*h[\\\"\\^]*d|m[\\\"\\^]*g[\\\"\\^]*r)|k[\\\"\\^]*e[\\\"\\^]*o[\\\"\\^]*w[\\\"\\^]*n)|(?:i[\\\"\\^]*m[\\\"\\^]*e[\\\"\\^]*o[\\\"\\^]*u|p[\\\"\\^]*m[\\\"\\^]*i[\\\"\\^]*n[\\\"\\^]*i|e[\\\"\\^]*l[\\\"\\^]*n[\\\"\\^]*e|l[\\\"\\^]*i[\\\"\\^]*s)[\\\"\\^]*t|s[\\\"\\^]*(?:d[\\\"\\^]*i[\\\"\\^]*s[\\\"\\^]*c[\\\"\\^]*o|s[\\\"\\^]*h[\\\"\\^]*u[\\\"\\^]*t[\\\"\\^]*d)[\\\"\\^]*n|y[\\\"\\^]*p[\\\"\\^]*e[\\\"\\^]*(?:p[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*f|(?:[\\s,;]|\\.|/|<|>).*)|r[\\\"\\^]*(?:a[\\\"\\^]*c[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*t|e[\\\"\\^]*e))|w[\\\"\\^]*(?:i[\\\"\\^]*n[\\\"\\^]*(?:d[\\\"\\^]*i[\\\"\\^]*f[\\\"\\^]*f|m[\\\"\\^]*s[\\\"\\^]*d[\\\"\\^]*p|v[\\\"\\^]*a[\\\"\\^]*r|r[\\\"\\^]*[ms])|u[\\\"\\^]*(?:a[\\\"\\^]*(?:u[\\\"\\^]*c[\\\"\\^]*l[\\\"\\^]*t|p[\\\"\\^]*p)|s[\\\"\\^]*a)|s[\\\"\\^]*c[\\\"\\^]*(?:r[\\\"\\^]*i[\\\"\\^]*p[\\\"\\^]*t|u[\\\"\\^]*i)|e[\\\"\\^]*v[\\\"\\^]*t[\\\"\\^]*u[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*l|m[\\\"\\^]*i[\\\"\\^]*(?:m[\\\"\\^]*g[\\\"\\^]*m[\\\"\\^]*t|c)|a[\\\"\\^]*i[\\\"\\^]*t[\\\"\\^]*f[\\\"\\^]*o[\\\"\\^]*r|h[\\\"\\^]*o[\\\"\\^]*a[\\\"\\^]*m[\\\"\\^]*i|g[\\\"\\^]*e[\\\"\\^]*t)|u[\\\"\\^]*(?:s[\\\"\\^]*(?:e[\\\"\\^]*r[\\\"\\^]*a[\\\"\\^]*c[\\\"\\^]*c[\\\"\\^]*o[\\\"\\^]*u[\\\"\\^]*n[\\\"\\^]*t[\\\"\\^]*c[\\\"\\^]*o[\\\"\\^]*n[\\\"\\^]*t[\\\"\\^]*r[\\\"\\^]*o[\\\"\\^]*l[\\\"\\^]*s[\\\"\\^]*e[\\\"\\^]*t[\\\"\\^]*t[\\\"\\^]*i[\\\"\\^]*n[\\\"\\^]*g[\\\"\\^]*s|r[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*a[\\\"\\^]*t)|n[\\\"\\^]*(?:r[\\\"\\^]*a[\\\"\\^]*r|z[\\\"\\^]*i[\\\"\\^]*p))|q[\\\"\\^]*(?:u[\\\"\\^]*e[\\\"\\^]*r[\\\"\\^]*y[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|p[\\\"\\^]*r[\\\"\\^]*o[\\\"\\^]*c[\\\"\\^]*e[\\\"\\^]*s[\\\"\\^]*s|w[\\\"\\^]*i[\\\"\\^]*n[\\\"\\^]*s[\\\"\\^]*t[\\\"\\^]*a|g[\\\"\\^]*r[\\\"\\^]*e[\\\"\\^]*p)|o[\\\"\\^]*(?:d[\\\"\\^]*b[\\\"\\^]*c[\\\"\\^]*(?:a[\\\"\\^]*d[\\\"\\^]*3[\\\"\\^]*2|c[\\\"\\^]*o[\\\"\\^]*n[\\\"\\^]*f)|p[\\\"\\^]*e[\\\"\\^]*n[\\\"\\^]*f[\\\"\\^]*i[\\\"\\^]*l[\\\"\\^]*e[\\\"\\^]*s)|v[\\\"\\^]*(?:o[\\\"\\^]*l[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*|e[\\\"\\^]*r[\\\"\\^]*i[\\\"\\^]*f[\\\"\\^]*y)|x[\\\"\\^]*c[\\\"\\^]*(?:a[\\\"\\^]*c[\\\"\\^]*l[\\\"\\^]*s|o[\\\"\\^]*p[\\\"\\^]*y)|z[\\\"\\^]*i[\\\"\\^]*p[\\\"\\^]*(?:[\\s,;]|\\.|/|<|>).*)",
             "options": {
               "min_length": 4
             }
@@ -246,11 +246,12 @@
               }
             ],
             "list": [
-              "powershell.exe",
-              "add-bitsfile",
+              "powershell",
               "add-computer",
               "add-content",
               "add-history",
+              "add-jobtrigger",
+              "add-localgroupmember",
               "add-member",
               "add-pssnapin",
               "add-type",
@@ -258,134 +259,243 @@
               "clear-content",
               "clear-eventlog",
               "clear-history",
+              "clear-host",
               "clear-item",
               "clear-itemproperty",
+              "clear-recyclebin",
               "clear-variable",
               "compare-object",
-              "complete-bitstransfer",
               "complete-transaction",
+              "compress-archive",
+              "connect-pssession",
               "connect-wsman",
+              "convert-path",
+              "convert-string",
               "convertfrom-csv",
+              "convertfrom-json",
+              "convertfrom-markdown",
+              "convertfrom-sddlstring",
               "convertfrom-securestring",
+              "convertfrom-string",
               "convertfrom-stringdata",
-              "convert-path",
               "convertto-csv",
               "convertto-html",
+              "convertto-json",
               "convertto-securestring",
               "convertto-xml",
               "copy-item",
               "copy-itemproperty",
+              "debug-job",
               "debug-process",
+              "debug-runspace",
               "disable-computerrestore",
+              "disable-experimentalfeature",
+              "disable-jobtrigger",
+              "disable-localuser",
               "disable-psbreakpoint",
+              "disable-psremoting",
               "disable-pssessionconfiguration",
+              "disable-pstrace",
+              "disable-pswsmancombinedtrace",
+              "disable-runspacedebug",
+              "disable-scheduledjob",
               "disable-wsmancredssp",
+              "disable-wsmantrace",
+              "disconnect-pssession",
               "disconnect-wsman",
               "enable-computerrestore",
+              "enable-experimentalfeature",
+              "enable-jobtrigger",
+              "enable-localuser",
               "enable-psbreakpoint",
               "enable-psremoting",
               "enable-pssessionconfiguration",
+              "enable-pstrace",
+              "enable-pswsmancombinedtrace",
+              "enable-runspacedebug",
+              "enable-scheduledjob",
               "enable-wsmancredssp",
+              "enable-wsmantrace",
+              "enter-pshostprocess",
               "enter-pssession",
+              "exit-pshostprocess",
               "exit-pssession",
+              "expand-archive",
               "export-alias",
+              "export-binarymilog",
               "export-clixml",
               "export-console",
               "export-counter",
               "export-csv",
               "export-formatdata",
               "export-modulemember",
+              "export-odataendpointproxy",
               "export-pssession",
+              "find-command",
+              "find-dscresource",
+              "find-module",
+              "find-package",
+              "find-packageprovider",
+              "find-rolecapability",
+              "find-script",
               "foreach-object",
               "format-custom",
+              "format-hex",
               "format-list",
               "format-table",
               "format-wide",
               "get-acl",
               "get-alias",
-              "get-applockerfileinformation",
-              "get-applockerpolicy",
               "get-authenticodesignature",
-              "get-bitstransfer",
               "get-childitem",
+              "get-cimassociatedinstance",
+              "get-cimclass",
+              "get-ciminstance",
+              "get-cimsession",
+              "get-clipboard",
+              "get-cmsmessage",
               "get-command",
+              "get-computerinfo",
               "get-computerrestorepoint",
               "get-content",
+              "get-controlpanelitem",
               "get-counter",
               "get-credential",
+              "get-date",
+              "get-error",
               "get-event",
               "get-eventlog",
               "get-eventsubscriber",
               "get-executionpolicy",
+              "get-experimentalfeature",
+              "get-filehash",
               "get-formatdata",
+              "get-help",
               "get-history",
               "get-host",
               "get-hotfix",
+              "get-installedmodule",
+              "get-installedscript",
+              "get-isesnippet",
               "get-item",
               "get-itemproperty",
+              "get-itempropertyvalue",
               "get-job",
+              "get-jobtrigger",
+              "get-localgroup",
+              "get-localgroupmember",
+              "get-localuser",
               "get-location",
+              "get-logproperties",
+              "get-markdownoption",
               "get-module",
-              "get-pfxcertificate",
-              "get-process",
+              "get-operationvalidation",
               "get-psbreakpoint",
               "get-pscallstack",
               "get-psdrive",
+              "get-pshostprocessinfo",
               "get-psprovider",
+              "get-psreadlinekeyhandler",
+              "get-psreadlineoption",
+              "get-psrepository",
               "get-pssession",
+              "get-pssessioncapability",
               "get-pssessionconfiguration",
               "get-pssnapin",
+              "get-pssubsystem",
+              "get-package",
+              "get-packageprovider",
+              "get-packagesource",
+              "get-pfxcertificate",
+              "get-process",
               "get-random",
+              "get-runspace",
+              "get-runspacedebug",
+              "get-scheduledjob",
+              "get-scheduledjoboption",
               "get-service",
+              "get-timezone",
               "get-tracesource",
               "get-transaction",
-              "get-troubleshootingpack",
+              "get-typedata",
               "get-uiculture",
               "get-unique",
+              "get-uptime",
               "get-variable",
-              "get-winevent",
-              "get-wmiobject",
+              "get-verb",
               "get-wsmancredssp",
               "get-wsmaninstance",
+              "get-winevent",
+              "get-wmiobject",
               "group-object",
               "import-alias",
+              "import-binarymilog",
               "import-clixml",
               "import-counter",
               "import-csv",
+              "import-isesnippet",
               "import-localizeddata",
               "import-module",
               "import-pssession",
+              "import-packageprovider",
+              "import-powershelldatafile",
+              "install-module",
+              "install-package",
+              "install-packageprovider",
+              "install-script",
+              "invoke-asworkflow",
+              "invoke-cimmethod",
               "invoke-command",
               "invoke-expression",
               "invoke-history",
               "invoke-item",
-              "invoke-troubleshootingpack",
-              "invoke-wmimethod",
+              "invoke-operationvalidation",
+              "invoke-restmethod",
               "invoke-wsmanaction",
+              "invoke-webrequest",
+              "invoke-wmimethod",
               "join-path",
+              "join-string",
               "limit-eventlog",
               "measure-command",
               "measure-object",
               "move-item",
               "move-itemproperty",
               "new-alias",
-              "new-applockerpolicy",
+              "new-ciminstance",
+              "new-cimsession",
+              "new-cimsessionoption",
               "new-event",
               "new-eventlog",
+              "new-filecatalog",
+              "new-guid",
+              "new-isesnippet",
               "new-item",
               "new-itemproperty",
+              "new-jobtrigger",
+              "new-localgroup",
+              "new-localuser",
               "new-module",
               "new-modulemanifest",
               "new-object",
               "new-psdrive",
+              "new-psrolecapabilityfile",
               "new-pssession",
+              "new-pssessionconfigurationfile",
               "new-pssessionoption",
+              "new-pstransportoption",
+              "new-psworkflowexecutionoption",
+              "new-psworkflowsession",
+              "new-scheduledjoboption",
+              "new-scriptfileinfo",
               "new-service",
+              "new-temporaryfile",
               "new-timespan",
               "new-variable",
-              "new-webserviceproxy",
               "new-wsmaninstance",
               "new-wsmansessionoption",
+              "new-webserviceproxy",
+              "new-winevent",
               "out-default",
               "out-file",
               "out-gridview",
@@ -394,93 +504,153 @@
               "out-printer",
               "out-string",
               "pop-location",
+              "protect-cmsmessage",
+              "publish-module",
+              "publish-script",
               "push-location",
               "read-host",
               "receive-job",
+              "receive-pssession",
+              "register-argumentcompleter",
+              "register-cimindicationevent",
               "register-engineevent",
               "register-objectevent",
+              "register-psrepository",
               "register-pssessionconfiguration",
+              "register-packagesource",
+              "register-scheduledjob",
               "register-wmievent",
-              "remove-bitstransfer",
+              "remove-alias",
+              "remove-ciminstance",
+              "remove-cimsession",
               "remove-computer",
               "remove-event",
               "remove-eventlog",
               "remove-item",
               "remove-itemproperty",
               "remove-job",
+              "remove-jobtrigger",
+              "remove-localgroup",
+              "remove-localgroupmember",
+              "remove-localuser",
               "remove-module",
               "remove-psbreakpoint",
               "remove-psdrive",
+              "remove-psreadlinekeyhandler",
               "remove-pssession",
               "remove-pssnapin",
+              "remove-service",
+              "remove-typedata",
               "remove-variable",
-              "remove-wmiobject",
               "remove-wsmaninstance",
+              "remove-wmiobject",
+              "rename-computer",
               "rename-item",
               "rename-itemproperty",
+              "rename-localgroup",
+              "rename-localuser",
               "reset-computermachinepassword",
               "resolve-path",
               "restart-computer",
               "restart-service",
               "restore-computer",
-              "resume-bitstransfer",
+              "resume-job",
               "resume-service",
+              "save-help",
+              "save-module",
+              "save-package",
+              "save-script",
               "select-object",
               "select-string",
               "select-xml",
               "send-mailmessage",
               "set-acl",
               "set-alias",
-              "set-applockerpolicy",
               "set-authenticodesignature",
-              "set-bitstransfer",
+              "set-ciminstance",
+              "set-clipboard",
               "set-content",
               "set-date",
               "set-executionpolicy",
               "set-item",
               "set-itemproperty",
+              "set-jobtrigger",
+              "set-localgroup",
+              "set-localuser",
               "set-location",
+              "set-logproperties",
+              "set-markdownoption",
               "set-psbreakpoint",
               "set-psdebug",
+              "set-psreadlinekeyhandler",
+              "set-psreadlineoption",
+              "set-psrepository",
               "set-pssessionconfiguration",
+              "set-packagesource",
+              "set-scheduledjob",
+              "set-scheduledjoboption",
               "set-service",
               "set-strictmode",
+              "set-timezone",
               "set-tracesource",
               "set-variable",
-              "set-wmiinstance",
               "set-wsmaninstance",
               "set-wsmanquickconfig",
+              "set-wmiinstance",
+              "show-command",
+              "show-controlpanelitem",
               "show-eventlog",
+              "show-markdown",
               "sort-object",
               "split-path",
-              "start-bitstransfer",
               "start-job",
               "start-process",
               "start-service",
               "start-sleep",
+              "start-threadjob",
+              "start-trace",
               "start-transaction",
               "stop-computer",
               "stop-job",
               "stop-process",
               "stop-service",
+              "stop-trace",
               "stop-transcript",
-              "suspend-bitstransfer",
+              "suspend-job",
               "suspend-service",
+              "switch-process",
               "tee-object",
-              "test-applockerpolicy",
               "test-computersecurechannel",
               "test-connection",
+              "test-filecatalog",
+              "test-json",
               "test-modulemanifest",
+              "test-pssessionconfigurationfile",
               "test-path",
+              "test-scriptfileinfo",
               "test-wsman",
               "trace-command",
+              "unblock-file",
               "undo-transaction",
+              "uninstall-module",
+              "uninstall-package",
+              "uninstall-script",
+              "unprotect-cmsmessage",
               "unregister-event",
+              "unregister-psrepository",
               "unregister-pssessionconfiguration",
+              "unregister-packagesource",
+              "unregister-scheduledjob",
               "update-formatdata",
+              "update-help",
               "update-list",
+              "update-module",
+              "update-modulemanifest",
+              "update-script",
+              "update-scriptfileinfo",
               "update-typedata",
               "use-transaction",
+              "wait-debugger",
               "wait-event",
               "wait-job",
               "wait-process",
@@ -489,13 +659,11 @@
               "write-error",
               "write-eventlog",
               "write-host",
+              "write-information",
               "write-output",
               "write-progress",
               "write-verbose",
-              "write-warning",
-              "-encodedcommand",
-              "-executionpolicy",
-              "-psconsolefile"
+              "write-warning"
             ]
           },
           "operator": "phrase_match"
@@ -527,7 +695,7 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?:\\$(?:\\((?:\\(.*\\)|.*)\\)|\\{.*})|[<>]\\(.*\\))",
+            "regex": "(?:\\$(?:\\((?:\\(.*\\)|.*)\\)|\\{.*})|\\/\\w*\\[!?.+\\]|[<>]\\(.*\\))",
             "options": {
               "case_sensitive": true,
               "min_length": 3
@@ -560,7 +728,7 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?:^|=)\\s*(?:{|\\s*\\(\\s*|\\w+=(?:[^\\s]*|\\$.*|\\$.*|<.*|>.*|\\'.*\\'|\\\".*\\\")\\s+|!\\s*|\\$)*\\s*(?:'|\\\")*(?:[\\?\\*\\[\\]\\(\\)\\-\\|+\\w'\\\"\\./\\\\\\\\]+/)?[\\\\\\\\'\\\"]*(?:l[\\\\\\\\'\\\"]*(?:s(?:[\\\\\\\\'\\\"]*(?:b[\\\\\\\\'\\\"]*_[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*e|c[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*u|m[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*d|p[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*i|u[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*b|-[\\\\\\\\'\\\"]*F|o[\\\\\\\\'\\\"]*f))?|z[\\\\\\\\'\\\"]*(?:(?:[ef][\\\\\\\\'\\\"]*)?g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p|c[\\\\\\\\'\\\"]*(?:a[\\\\\\\\'\\\"]*t|m[\\\\\\\\'\\\"]*p)|m[\\\\\\\\'\\\"]*(?:o[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e|a)|d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s)|e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*(?:(?:f[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*l|p[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*p)[\\\\\\\\'\\\"]*e|e[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*o)|a[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*(?:l[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*g(?:[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n)?|c[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*m)|w[\\\\\\\\'\\\"]*p(?:[\\\\\\\\'\\\"]*-[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*w[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*d)?|f[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*p(?:[\\\\\\\\'\\\"]*g[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*t)?|y[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*x)|s[\\\\\\\\'\\\"]*(?:e[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*(?:e[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*v|s[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*d)|n[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*l|d)|h(?:[\\\\\\\\'\\\"]*\\.[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*b)?|o[\\\\\\\\'\\\"]*(?:u[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*e|c[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t)|t[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*g[\\\\\\\\'\\\"]*s|y[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*l|c[\\\\\\\\'\\\"]*(?:h[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*d|p)|d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|f[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*p|u[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*o|s[\\\\\\\\'\\\"]*h|v[\\\\\\\\'\\\"]*n)|p[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*r(?:[\\\\\\\\'\\\"]*(?:d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p))?|y[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*n(?:[\\\\\\\\'\\\"]*(?:3(?:[\\\\\\\\'\\\"]*m)?|2))?|k[\\\\\\\\'\\\"]*(?:e[\\\\\\\\'\\\"]*x[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*c|i[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*l)|r[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*v|(?:g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e|f[\\\\\\\\'\\\"]*t)[\\\\\\\\'\\\"]*p|e[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*l(?:[\\\\\\\\'\\\"]*5)?|h[\\\\\\\\'\\\"]*p(?:[\\\\\\\\'\\\"]*[57])?|i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*g|o[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*d)|n[\\\\\\\\'\\\"]*(?:c(?:[\\\\\\\\'\\\"]*(?:\\.[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*l|o[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*b[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*d)|a[\\\\\\\\'\\\"]*t))?|e[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*(?:k[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*-[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*p|(?:s[\\\\\\\\'\\\"]*t|c)[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t)|o[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*p|p[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*g|s[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t)|t[\\\\\\\\'\\\"]*(?:c[\\\\\\\\'\\\"]*(?:p[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*e|i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*g)|s[\\\\\\\\'\\\"]*h)|r[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*e(?:[\\\\\\\\'\\\"]*6)?|i[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*e(?:[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*t)?|a[\\\\\\\\'\\\"]*(?:i[\\\\\\\\'\\\"]*l(?:[\\\\\\\\'\\\"]*f)?|r)|e[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*t)|r[\\\\\\\\'\\\"]*(?:e[\\\\\\\\'\\\"]*(?:p[\\\\\\\\'\\\"]*(?:l[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*e|e[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t)|a[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*h|n[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*e)|u[\\\\\\\\'\\\"]*b[\\\\\\\\'\\\"]*y(?:[\\\\\\\\'\\\"]*(?:1(?:[\\\\\\\\'\\\"]*[89])?|2[\\\\\\\\'\\\"]*[012]))?|m[\\\\\\\\'\\\"]*(?:u[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*e|d[\\\\\\\\'\\\"]*i)[\\\\\\\\'\\\"]*r|n[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*o|s[\\\\\\\\'\\\"]*y[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*c|c[\\\\\\\\'\\\"]*p)|b[\\\\\\\\'\\\"]*(?:z[\\\\\\\\'\\\"]*(?:(?:[ef][\\\\\\\\'\\\"]*)?g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p|d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s|m[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e|c[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t)|s[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*(?:c[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t|i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|t[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*r)|u[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n|a[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*h)|m[\\\\\\\\'\\\"]*(?:y[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*q[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*(?:d[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*p(?:[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*w)?|h[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*y|a[\\\\\\\\'\\\"]*d[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n|s[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*w)|l[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*e|a[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*q)|u[\\\\\\\\'\\\"]*(?:n[\\\\\\\\'\\\"]*(?:c[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s|l[\\\\\\\\'\\\"]*z[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*a|a[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*e|r[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*r|s[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*t|z[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*p|x[\\\\\\\\'\\\"]*z)|s[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*(?:(?:a[\\\\\\\\'\\\"]*d|m[\\\\\\\\'\\\"]*o)[\\\\\\\\'\\\"]*d|d[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*l))|x[\\\\\\\\'\\\"]*(?:z(?:[\\\\\\\\'\\\"]*(?:(?:[ef][\\\\\\\\'\\\"]*)?g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p|d[\\\\\\\\'\\\"]*(?:i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|e[\\\\\\\\'\\\"]*c)|c[\\\\\\\\'\\\"]*(?:a[\\\\\\\\'\\\"]*t|m[\\\\\\\\'\\\"]*p)|l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s|m[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e))?|a[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*g[\\\\\\\\'\\\"]*s)|z[\\\\\\\\'\\\"]*(?:(?:(?:[ef][\\\\\\\\'\\\"]*)?g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e|i)[\\\\\\\\'\\\"]*p|c[\\\\\\\\'\\\"]*(?:a[\\\\\\\\'\\\"]*t|m[\\\\\\\\'\\\"]*p)|d[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*s|m[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e|r[\\\\\\\\'\\\"]*u[\\\\\\\\'\\\"]*n|s[\\\\\\\\'\\\"]*h)|f[\\\\\\\\'\\\"]*(?:t[\\\\\\\\'\\\"]*p[\\\\\\\\'\\\"]*(?:s[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*s|w[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*o)|i[\\\\\\\\'\\\"]*l[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*t|e[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*c[\\\\\\\\'\\\"]*h|g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p)|c[\\\\\\\\'\\\"]*(?:o[\\\\\\\\'\\\"]*(?:m[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*d|p[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*c)|u[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*l|s[\\\\\\\\'\\\"]*h|c)|e[\\\\\\\\'\\\"]*(?:g[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p|c[\\\\\\\\'\\\"]*h[\\\\\\\\'\\\"]*o|v[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*l|x[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*c|n[\\\\\\\\'\\\"]*v)|d[\\\\\\\\'\\\"]*(?:m[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*g|a[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*h|i[\\\\\\\\'\\\"]*f[\\\\\\\\'\\\"]*f|o[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*s)|g[\\\\\\\\'\\\"]*(?:z[\\\\\\\\'\\\"]*(?:c[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*t|i[\\\\\\\\'\\\"]*p)|r[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*p|c[\\\\\\\\'\\\"]*c)|j[\\\\\\\\'\\\"]*(?:o[\\\\\\\\'\\\"]*b[\\\\\\\\'\\\"]*s[\\\\\\\\'\\\"]*\\s+[\\\\\\\\'\\\"]*-[\\\\\\\\'\\\"]*x|a[\\\\\\\\'\\\"]*v[\\\\\\\\'\\\"]*a)|w[\\\\\\\\'\\\"]*(?:h[\\\\\\\\'\\\"]*o[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*m[\\\\\\\\'\\\"]*i|g[\\\\\\\\'\\\"]*e[\\\\\\\\'\\\"]*t|3[\\\\\\\\'\\\"]*m)|i[\\\\\\\\'\\\"]*r[\\\\\\\\'\\\"]*b(?:[\\\\\\\\'\\\"]*(?:1(?:[\\\\\\\\'\\\"]*[89])?|2[\\\\\\\\'\\\"]*[012]))?|o[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*n[\\\\\\\\'\\\"]*t[\\\\\\\\'\\\"]*r|h[\\\\\\\\'\\\"]*(?:e[\\\\\\\\'\\\"]*a[\\\\\\\\'\\\"]*d|u[\\\\\\\\'\\\"]*p)|v[\\\\\\\\'\\\"]*i[\\\\\\\\'\\\"]*(?:g[\\\\\\\\'\\\"]*r|p[\\\\\\\\'\\\"]*w)|G[\\\\\\\\'\\\"]*E[\\\\\\\\'\\\"]*T)[\\\\\\\\'\\\"]*(?:\\s|;|\\||&|<|>)",
+            "regex": "(?:(?:^|=)\\s*(?:(?:\\w+=(?:[^\\s]*|\\$.*|\\$.*|<.*|>.*|\\'.*\\'|\\\".*\\\")\\s+|(?:\\s*\\(|!)\\s*|\\{|\\$))*\\s*(?:[\\\"'])*(?:[\\?\\*\\[\\]\\(\\)\\-\\|+\\w'\\\"\\./\\x5c]+/)?[\\x5c'\\\"]*(?:l[\\x5c'\\\"]*(?:z(?:[\\x5c'\\\"]*(?:m[\\x5c'\\\"]*(?:a(?:[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*n[\\x5c'\\\"]*f[\\x5c'\\\"]*o|d[\\x5c'\\\"]*e[\\x5c'\\\"]*c))?|o[\\x5c'\\\"]*r[\\x5c'\\\"]*e)|(?:[ef][\\x5c'\\\"]*)?g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|4(?:[\\x5c'\\\"]*c(?:[\\x5c'\\\"]*a[\\x5c'\\\"]*t)?)?|c[\\x5c'\\\"]*(?:a[\\x5c'\\\"]*t|m[\\x5c'\\\"]*p)|d[\\x5c'\\\"]*i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|l[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*s))?|s(?:[\\x5c'\\\"]*(?:b[\\x5c'\\\"]*_[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*l[\\x5c'\\\"]*e[\\x5c'\\\"]*a[\\x5c'\\\"]*s[\\x5c'\\\"]*e|c[\\x5c'\\\"]*p[\\x5c'\\\"]*u|m[\\x5c'\\\"]*o[\\x5c'\\\"]*d|p[\\x5c'\\\"]*c[\\x5c'\\\"]*i|u[\\x5c'\\\"]*s[\\x5c'\\\"]*b|-[\\x5c'\\\"]*F|o[\\x5c'\\\"]*f))?|e[\\x5c'\\\"]*s[\\x5c'\\\"]*s[\\x5c'\\\"]*(?:(?:f[\\x5c'\\\"]*i[\\x5c'\\\"]*l|p[\\x5c'\\\"]*i[\\x5c'\\\"]*p)[\\x5c'\\\"]*e|e[\\x5c'\\\"]*c[\\x5c'\\\"]*h[\\x5c'\\\"]*o)|a[\\x5c'\\\"]*s[\\x5c'\\\"]*t[\\x5c'\\\"]*(?:l[\\x5c'\\\"]*o[\\x5c'\\\"]*g(?:[\\x5c'\\\"]*i[\\x5c'\\\"]*n)?|c[\\x5c'\\\"]*o[\\x5c'\\\"]*m[\\x5c'\\\"]*m)|w[\\x5c'\\\"]*p(?:[\\x5c'\\\"]*-[\\x5c'\\\"]*d[\\x5c'\\\"]*o[\\x5c'\\\"]*w[\\x5c'\\\"]*n[\\x5c'\\\"]*l[\\x5c'\\\"]*o[\\x5c'\\\"]*a[\\x5c'\\\"]*d)?|f[\\x5c'\\\"]*t[\\x5c'\\\"]*p(?:[\\x5c'\\\"]*g[\\x5c'\\\"]*e[\\x5c'\\\"]*t)?|y[\\x5c'\\\"]*n[\\x5c'\\\"]*x)|z[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*p(?:[\\x5c'\\\"]*(?:(?:m[\\x5c'\\\"]*e[\\x5c'\\\"]*r[\\x5c'\\\"]*g|n[\\x5c'\\\"]*o[\\x5c'\\\"]*t)[\\x5c'\\\"]*e|d[\\x5c'\\\"]*e[\\x5c'\\\"]*t[\\x5c'\\\"]*a[\\x5c'\\\"]*i[\\x5c'\\\"]*l[\\x5c'\\\"]*s|c[\\x5c'\\\"]*(?:l[\\x5c'\\\"]*o[\\x5c'\\\"]*a[\\x5c'\\\"]*k|m[\\x5c'\\\"]*p)|s[\\x5c'\\\"]*p[\\x5c'\\\"]*l[\\x5c'\\\"]*i[\\x5c'\\\"]*t|g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|i[\\x5c'\\\"]*n[\\x5c'\\\"]*f[\\x5c'\\\"]*o|t[\\x5c'\\\"]*o[\\x5c'\\\"]*o[\\x5c'\\\"]*l))?|s[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*d(?:[\\x5c'\\\"]*(?:g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|l[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*s|(?:c[\\x5c'\\\"]*a|m)[\\x5c'\\\"]*t))?|h)|(?:[ef][\\x5c'\\\"]*)?g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|c[\\x5c'\\\"]*(?:a[\\x5c'\\\"]*t|m[\\x5c'\\\"]*p)|d[\\x5c'\\\"]*i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|l[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*s|m[\\x5c'\\\"]*o[\\x5c'\\\"]*r[\\x5c'\\\"]*e|r[\\x5c'\\\"]*u[\\x5c'\\\"]*n)|b[\\x5c'\\\"]*(?:z[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*p[\\x5c'\\\"]*2(?:[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*c[\\x5c'\\\"]*o[\\x5c'\\\"]*v[\\x5c'\\\"]*e[\\x5c'\\\"]*r)?|e[\\x5c'\\\"]*(?:g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|x[\\x5c'\\\"]*e)|(?:f[\\x5c'\\\"]*)?g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|c[\\x5c'\\\"]*(?:a[\\x5c'\\\"]*t|m[\\x5c'\\\"]*p)|d[\\x5c'\\\"]*i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|l[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*s|m[\\x5c'\\\"]*o[\\x5c'\\\"]*r[\\x5c'\\\"]*e|z)|u[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*l[\\x5c'\\\"]*t[\\x5c'\\\"]*i[\\x5c'\\\"]*n|n[\\x5c'\\\"]*z[\\x5c'\\\"]*i[\\x5c'\\\"]*p[\\x5c'\\\"]*2|s[\\x5c'\\\"]*y[\\x5c'\\\"]*b[\\x5c'\\\"]*o[\\x5c'\\\"]*x)|s[\\x5c'\\\"]*d[\\x5c'\\\"]*(?:c[\\x5c'\\\"]*a[\\x5c'\\\"]*t|i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|t[\\x5c'\\\"]*a[\\x5c'\\\"]*r)|a[\\x5c'\\\"]*s[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*(?:3[\\x5c'\\\"]*2|6[\\x5c'\\\"]*4|n[\\x5c'\\\"]*c)|h))|s[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*n[\\x5c'\\\"]*v|s[\\x5c'\\\"]*i[\\x5c'\\\"]*d)|n[\\x5c'\\\"]*d[\\x5c'\\\"]*m[\\x5c'\\\"]*a[\\x5c'\\\"]*i[\\x5c'\\\"]*l|d)|h(?:[\\x5c'\\\"]*\\.[\\x5c'\\\"]*d[\\x5c'\\\"]*i[\\x5c'\\\"]*s[\\x5c'\\\"]*t[\\x5c'\\\"]*r[\\x5c'\\\"]*i[\\x5c'\\\"]*b)?|o[\\x5c'\\\"]*(?:u[\\x5c'\\\"]*r[\\x5c'\\\"]*c[\\x5c'\\\"]*e|c[\\x5c'\\\"]*a[\\x5c'\\\"]*t)|t[\\x5c'\\\"]*r[\\x5c'\\\"]*i[\\x5c'\\\"]*n[\\x5c'\\\"]*g[\\x5c'\\\"]*s|y[\\x5c'\\\"]*s[\\x5c'\\\"]*c[\\x5c'\\\"]*t[\\x5c'\\\"]*l|c[\\x5c'\\\"]*(?:h[\\x5c'\\\"]*e[\\x5c'\\\"]*d|p)|d[\\x5c'\\\"]*i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|f[\\x5c'\\\"]*t[\\x5c'\\\"]*p|u[\\x5c'\\\"]*d[\\x5c'\\\"]*o|s[\\x5c'\\\"]*h|v[\\x5c'\\\"]*n)|p[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*a[\\x5c'\\\"]*r(?:[\\x5c'\\\"]*(?:d[\\x5c'\\\"]*i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p))?|y[\\x5c'\\\"]*t[\\x5c'\\\"]*h[\\x5c'\\\"]*o[\\x5c'\\\"]*n[\\x5c'\\\"]*[23]?[\\x5c'\\\"]*(?:\\.[0-9.\\x5c'\\\"]+)?(?:[dmu]+)?|k[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*x[\\x5c'\\\"]*e[\\x5c'\\\"]*c|i[\\x5c'\\\"]*l[\\x5c'\\\"]*l)|r[\\x5c'\\\"]*i[\\x5c'\\\"]*n[\\x5c'\\\"]*t[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*n[\\x5c'\\\"]*v|f)|(?:g[\\x5c'\\\"]*r[\\x5c'\\\"]*e|f[\\x5c'\\\"]*t)[\\x5c'\\\"]*p|e[\\x5c'\\\"]*r[\\x5c'\\\"]*l(?:[\\x5c'\\\"]*5)?|h[\\x5c'\\\"]*p(?:[\\x5c'\\\"]*[57])?|(?:i[\\x5c'\\\"]*g|x)[\\x5c'\\\"]*z|o[\\x5c'\\\"]*p[\\x5c'\\\"]*d)|n[\\x5c'\\\"]*(?:c(?:[\\x5c'\\\"]*(?:\\.[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*r[\\x5c'\\\"]*a[\\x5c'\\\"]*d[\\x5c'\\\"]*i[\\x5c'\\\"]*t[\\x5c'\\\"]*i[\\x5c'\\\"]*o[\\x5c'\\\"]*n[\\x5c'\\\"]*a[\\x5c'\\\"]*l|o[\\x5c'\\\"]*p[\\x5c'\\\"]*e[\\x5c'\\\"]*n[\\x5c'\\\"]*b[\\x5c'\\\"]*s[\\x5c'\\\"]*d)|a[\\x5c'\\\"]*t))?|e[\\x5c'\\\"]*t[\\x5c'\\\"]*(?:k[\\x5c'\\\"]*i[\\x5c'\\\"]*t[\\x5c'\\\"]*-[\\x5c'\\\"]*f[\\x5c'\\\"]*t[\\x5c'\\\"]*p|(?:s[\\x5c'\\\"]*t|c)[\\x5c'\\\"]*a[\\x5c'\\\"]*t)|o[\\x5c'\\\"]*h[\\x5c'\\\"]*u[\\x5c'\\\"]*p|p[\\x5c'\\\"]*i[\\x5c'\\\"]*n[\\x5c'\\\"]*g|s[\\x5c'\\\"]*t[\\x5c'\\\"]*a[\\x5c'\\\"]*t)|t[\\x5c'\\\"]*(?:c[\\x5c'\\\"]*(?:p[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*r[\\x5c'\\\"]*a[\\x5c'\\\"]*c[\\x5c'\\\"]*e[\\x5c'\\\"]*r[\\x5c'\\\"]*o[\\x5c'\\\"]*u[\\x5c'\\\"]*t[\\x5c'\\\"]*e|i[\\x5c'\\\"]*n[\\x5c'\\\"]*g)|s[\\x5c'\\\"]*h)|r[\\x5c'\\\"]*a[\\x5c'\\\"]*c[\\x5c'\\\"]*e[\\x5c'\\\"]*r[\\x5c'\\\"]*o[\\x5c'\\\"]*u[\\x5c'\\\"]*t[\\x5c'\\\"]*e(?:[\\x5c'\\\"]*6)?|(?:i[\\x5c'\\\"]*m[\\x5c'\\\"]*e[\\x5c'\\\"]*o[\\x5c'\\\"]*u|e[\\x5c'\\\"]*l[\\x5c'\\\"]*n[\\x5c'\\\"]*e)[\\x5c'\\\"]*t|a[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*l(?:[\\x5c'\\\"]*f)?|r))|r[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*(?:p[\\x5c'\\\"]*(?:l[\\x5c'\\\"]*a[\\x5c'\\\"]*c[\\x5c'\\\"]*e|e[\\x5c'\\\"]*a[\\x5c'\\\"]*t)|a[\\x5c'\\\"]*l[\\x5c'\\\"]*p[\\x5c'\\\"]*a[\\x5c'\\\"]*t[\\x5c'\\\"]*h|n[\\x5c'\\\"]*a[\\x5c'\\\"]*m[\\x5c'\\\"]*e)|u[\\x5c'\\\"]*b[\\x5c'\\\"]*y(?:[\\x5c'\\\"]*(?:1(?:[\\x5c'\\\"]*[89])?|2[\\x5c'\\\"]*[012]))?|m[\\x5c'\\\"]*(?:u[\\x5c'\\\"]*s[\\x5c'\\\"]*e|d[\\x5c'\\\"]*i)[\\x5c'\\\"]*r|n[\\x5c'\\\"]*a[\\x5c'\\\"]*n[\\x5c'\\\"]*o|s[\\x5c'\\\"]*y[\\x5c'\\\"]*n[\\x5c'\\\"]*c|c[\\x5c'\\\"]*p)|u[\\x5c'\\\"]*(?:n[\\x5c'\\\"]*(?:c[\\x5c'\\\"]*o[\\x5c'\\\"]*m[\\x5c'\\\"]*p[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*s|z[\\x5c'\\\"]*(?:s[\\x5c'\\\"]*t[\\x5c'\\\"]*d|i[\\x5c'\\\"]*p)|(?:p[\\x5c'\\\"]*i[\\x5c'\\\"]*g|x)[\\x5c'\\\"]*z|l[\\x5c'\\\"]*z[\\x5c'\\\"]*(?:m[\\x5c'\\\"]*a|4)|a[\\x5c'\\\"]*m[\\x5c'\\\"]*e|r[\\x5c'\\\"]*a[\\x5c'\\\"]*r|s[\\x5c'\\\"]*e[\\x5c'\\\"]*t)|s[\\x5c'\\\"]*e[\\x5c'\\\"]*r[\\x5c'\\\"]*(?:(?:a[\\x5c'\\\"]*d|m[\\x5c'\\\"]*o)[\\x5c'\\\"]*d|d[\\x5c'\\\"]*e[\\x5c'\\\"]*l))|m[\\x5c'\\\"]*(?:y[\\x5c'\\\"]*s[\\x5c'\\\"]*q[\\x5c'\\\"]*l[\\x5c'\\\"]*(?:d[\\x5c'\\\"]*u[\\x5c'\\\"]*m[\\x5c'\\\"]*p(?:[\\x5c'\\\"]*s[\\x5c'\\\"]*l[\\x5c'\\\"]*o[\\x5c'\\\"]*w)?|h[\\x5c'\\\"]*o[\\x5c'\\\"]*t[\\x5c'\\\"]*c[\\x5c'\\\"]*o[\\x5c'\\\"]*p[\\x5c'\\\"]*y|a[\\x5c'\\\"]*d[\\x5c'\\\"]*m[\\x5c'\\\"]*i[\\x5c'\\\"]*n|s[\\x5c'\\\"]*h[\\x5c'\\\"]*o[\\x5c'\\\"]*w)|l[\\x5c'\\\"]*o[\\x5c'\\\"]*c[\\x5c'\\\"]*a[\\x5c'\\\"]*t[\\x5c'\\\"]*e|a[\\x5c'\\\"]*i[\\x5c'\\\"]*l[\\x5c'\\\"]*q)|c[\\x5c'\\\"]*(?:o[\\x5c'\\\"]*(?:r[\\x5c'\\\"]*e[\\x5c'\\\"]*_[\\x5c'\\\"]*p[\\x5c'\\\"]*e[\\x5c'\\\"]*r[\\x5c'\\\"]*l[\\x5c'\\\"]*\\/[\\x5c'\\\"]*z[\\x5c'\\\"]*i[\\x5c'\\\"]*p[\\x5c'\\\"]*d[\\x5c'\\\"]*e[\\x5c'\\\"]*t[\\x5c'\\\"]*a[\\x5c'\\\"]*i[\\x5c'\\\"]*l[\\x5c'\\\"]*s|m[\\x5c'\\\"]*m[\\x5c'\\\"]*a[\\x5c'\\\"]*n[\\x5c'\\\"]*d|p[\\x5c'\\\"]*r[\\x5c'\\\"]*o[\\x5c'\\\"]*c)|u[\\x5c'\\\"]*r[\\x5c'\\\"]*l|9[\\x5c'\\\"]*9|s[\\x5c'\\\"]*h|c)|x[\\x5c'\\\"]*(?:z(?:[\\x5c'\\\"]*(?:(?:[ef][\\x5c'\\\"]*)?g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|d[\\x5c'\\\"]*(?:i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|e[\\x5c'\\\"]*c)|c[\\x5c'\\\"]*(?:a[\\x5c'\\\"]*t|m[\\x5c'\\\"]*p)|l[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*s|m[\\x5c'\\\"]*o[\\x5c'\\\"]*r[\\x5c'\\\"]*e))?|a[\\x5c'\\\"]*r[\\x5c'\\\"]*g[\\x5c'\\\"]*s)|f[\\x5c'\\\"]*(?:t[\\x5c'\\\"]*p[\\x5c'\\\"]*(?:s[\\x5c'\\\"]*t[\\x5c'\\\"]*a[\\x5c'\\\"]*t[\\x5c'\\\"]*s|w[\\x5c'\\\"]*h[\\x5c'\\\"]*o)|i[\\x5c'\\\"]*l[\\x5c'\\\"]*e[\\x5c'\\\"]*t[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*t|e[\\x5c'\\\"]*t[\\x5c'\\\"]*c[\\x5c'\\\"]*h|g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p)|g[\\x5c'\\\"]*(?:z[\\x5c'\\\"]*(?:c[\\x5c'\\\"]*a[\\x5c'\\\"]*t|e[\\x5c'\\\"]*x[\\x5c'\\\"]*e|i[\\x5c'\\\"]*p)|(?:u[\\x5c'\\\"]*n[\\x5c'\\\"]*z[\\x5c'\\\"]*i|r[\\x5c'\\\"]*e)[\\x5c'\\\"]*p|c[\\x5c'\\\"]*c)|e[\\x5c'\\\"]*(?:g[\\x5c'\\\"]*r[\\x5c'\\\"]*e[\\x5c'\\\"]*p|c[\\x5c'\\\"]*h[\\x5c'\\\"]*o|v[\\x5c'\\\"]*a[\\x5c'\\\"]*l|x[\\x5c'\\\"]*e[\\x5c'\\\"]*c|n[\\x5c'\\\"]*v)|d[\\x5c'\\\"]*(?:m[\\x5c'\\\"]*e[\\x5c'\\\"]*s[\\x5c'\\\"]*g|a[\\x5c'\\\"]*s[\\x5c'\\\"]*h|i[\\x5c'\\\"]*f[\\x5c'\\\"]*f|o[\\x5c'\\\"]*a[\\x5c'\\\"]*s)|j[\\x5c'\\\"]*(?:o[\\x5c'\\\"]*b[\\x5c'\\\"]*s[\\x5c'\\\"]*\\s+[\\x5c'\\\"]*-[\\x5c'\\\"]*x|a[\\x5c'\\\"]*v[\\x5c'\\\"]*a)|w[\\x5c'\\\"]*(?:h[\\x5c'\\\"]*o[\\x5c'\\\"]*a[\\x5c'\\\"]*m[\\x5c'\\\"]*i|g[\\x5c'\\\"]*e[\\x5c'\\\"]*t|3[\\x5c'\\\"]*m)|i[\\x5c'\\\"]*r[\\x5c'\\\"]*b(?:[\\x5c'\\\"]*(?:1(?:[\\x5c'\\\"]*[89])?|2[\\x5c'\\\"]*[012]))?|o[\\x5c'\\\"]*n[\\x5c'\\\"]*i[\\x5c'\\\"]*n[\\x5c'\\\"]*t[\\x5c'\\\"]*r|h[\\x5c'\\\"]*(?:e[\\x5c'\\\"]*a[\\x5c'\\\"]*d|u[\\x5c'\\\"]*p)|v[\\x5c'\\\"]*i[\\x5c'\\\"]*(?:g[\\x5c'\\\"]*r|p[\\x5c'\\\"]*w)|7[\\x5c'\\\"]*z(?:[\\x5c'\\\"]*[ar])?|G[\\x5c'\\\"]*E[\\x5c'\\\"]*T|k[\\x5c'\\\"]*s[\\x5c'\\\"]*h)|\\$[\\x5c'\\\"]*(?:\\{[\\x5c'\\\"]*S[\\x5c'\\\"]*H[\\x5c'\\\"]*E[\\x5c'\\\"]*L[\\x5c'\\\"]*L[\\x5c'\\\"]*}|S[\\x5c'\\\"]*H[\\x5c'\\\"]*E[\\x5c'\\\"]*L[\\x5c'\\\"]*L))[\\x5c'\\\"]*(?:\\s|;|\\||&|<|>)",
             "options": {
               "case_sensitive": true,
               "min_length": 3
@@ -608,7 +776,7 @@
                 ]
               }
             ],
-            "regex": ".*\\.(?:php\\d*|phtml)\\.*$",
+            "regex": ".*\\.ph(?:p\\d*|tml|ar|ps|t|pt)\\.*$",
             "options": {
               "case_sensitive": true,
               "min_length": 4
@@ -676,10 +844,10 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?:(?:\\(|\\[|\\\")[a-zA-Z0-9_.$\\\"'\\[\\](?:){}*\\s\\\\]+(?:\\)|\\]|\\\")[0-9_.$\\\"'\\[\\](?:){}*\\s]*\\([a-zA-Z0-9_.$\\\"'\\[\\](?:){}*\\s].*\\)|\\([\\s]*string[\\s]*\\)[\\s]*(?:\\\"|'))[;]",
+            "regex": "(?:\\(.+\\)\\(.+\\)|\\(.+\\)['\\\"][a-zA-Z-_0-9]+['\\\"]\\(.+\\)|\\[\\d+\\]\\(.+\\)|\\{\\d+\\}\\(.+\\)|\\$[^(?:\\),.;\\x5c/]+\\(.+\\)|[\\\"'][a-zA-Z0-9-_\\x5c]+[\\\"']\\(.+\\)|\\([^\\)]*string[^\\)]*\\)[a-zA-Z-_0-9\\\"'.{}\\[\\]\\s]+\\([^\\)]*\\));",
             "options": {
               "case_sensitive": true,
-              "min_length": 7
+              "min_length": 6
             }
           },
           "operator": "match_regex"
@@ -815,29 +983,17 @@
       ]
     },
     {
-      "id": "crs-941-170",
-      "name": "NoScript XSS InjectionChecker: Attribute Injection",
+      "id": "crs-941-190",
+      "name": "IE XSS Filters - Attack Detected",
       "tags": {
         "type": "xss",
-        "crs_id": "941170",
+        "crs_id": "941190",
         "category": "attack_attempt"
       },
       "conditions": [
         {
           "parameters": {
             "inputs": [
-              {
-                "address": "server.request.headers.no_cookies",
-                "key_path": [
-                  "user-agent"
-                ]
-              },
-              {
-                "address": "server.request.headers.no_cookies",
-                "key_path": [
-                  "referer"
-                ]
-              },
               {
                 "address": "server.request.query"
               },
@@ -848,9 +1004,10 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?:\\W|^)(?:javascript:(?:[\\s\\S]+[=\\\\\\(\\[\\.<]|[\\s\\S]*?(?:\\bname\\b|\\\\[ux]\\d))|data:(?:(?:[a-z]\\w+/\\w[\\w+-]+\\w)?[;,]|[\\s\\S]*?;[\\s\\S]*?\\b(?:base64|charset=)|[\\s\\S]*?,[\\s\\S]*?<[\\s\\S]*?\\w[\\s\\S]*?>))|@\\W*?i\\W*?m\\W*?p\\W*?o\\W*?r\\W*?t\\W*?(?:/\\*[\\s\\S]*?)?(?:[\\\"']|\\W*?u\\W*?r\\W*?l[\\s\\S]*?\\()|\\W*?-\\W*?m\\W*?o\\W*?z\\W*?-\\W*?b\\W*?i\\W*?n\\W*?d\\W*?i\\W*?n\\W*?g[\\s\\S]*?:[\\s\\S]*?\\W*?u\\W*?r\\W*?l[\\s\\S]*?\\(",
+            "regex": "(?i:<style.*?>.*?(?:@[i\\x5c]|(?:[:=]|&#x?0*(?:58|3A|61|3D);?).*?(?:[(?:\\x5c]|&#x?0*(?:40|28|92|5C);?)))",
             "options": {
-              "min_length": 6
+              "case_sensitive": true,
+              "min_length": 9
             }
           },
           "operator": "match_regex"
@@ -861,11 +1018,11 @@
       ]
     },
     {
-      "id": "crs-941-190",
+      "id": "crs-941-250",
       "name": "IE XSS Filters - Attack Detected",
       "tags": {
         "type": "xss",
-        "crs_id": "941190",
+        "crs_id": "941250",
         "category": "attack_attempt"
       },
       "conditions": [
@@ -882,10 +1039,10 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?i:<style.*?>.*?(?:@[i\\\\\\\\]|(?:[:=]|&#x?0*(?:58|3A|61|3D);?).*?(?:[(?:\\\\\\\\]|&#x?0*(?:40|28|92|5C);?)))",
+            "regex": "(?i:<META[\\s/+].*?http-equiv[\\s/+]*=[\\s/+]*[\\\"'`]?(?:(?:c|&#x?0*(?:67|43|99|63);?)|(?:r|&#x?0*(?:82|52|114|72);?)|(?:s|&#x?0*(?:83|53|115|73);?)))",
             "options": {
               "case_sensitive": true,
-              "min_length": 9
+              "min_length": 18
             }
           },
           "operator": "match_regex"
@@ -896,11 +1053,11 @@
       ]
     },
     {
-      "id": "crs-941-250",
+      "id": "crs-941-260",
       "name": "IE XSS Filters - Attack Detected",
       "tags": {
         "type": "xss",
-        "crs_id": "941250",
+        "crs_id": "941260",
         "category": "attack_attempt"
       },
       "conditions": [
@@ -917,10 +1074,10 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?i:<META[\\s/+].*?http-equiv[\\s/+]*=[\\s/+]*[\\\"'`]?(?:(?:c|&#x?0*(?:67|43|99|63);?)|(?:r|&#x?0*(?:82|52|114|72);?)|(?:s|&#x?0*(?:83|53|115|73);?)))",
+            "regex": "(?i:<META[\\s/+].*?charset[\\s/+]*=)",
             "options": {
               "case_sensitive": true,
-              "min_length": 18
+              "min_length": 14
             }
           },
           "operator": "match_regex"
@@ -931,11 +1088,11 @@
       ]
     },
     {
-      "id": "crs-941-260",
-      "name": "IE XSS Filters - Attack Detected",
+      "id": "crs-941-370",
+      "name": "JavaScript global variable found",
       "tags": {
         "type": "xss",
-        "crs_id": "941260",
+        "crs_id": "941370",
         "category": "attack_attempt"
       },
       "conditions": [
@@ -952,25 +1109,23 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?i:<META[\\s/+].*?charset[\\s/+]*=)",
+            "regex": "(?:self|document|this|top|window)\\s*(?:/\\*|[\\[)]).+?(?:\\]|\\*/)",
             "options": {
               "case_sensitive": true,
-              "min_length": 14
+              "min_length": 6
             }
           },
           "operator": "match_regex"
         }
       ],
-      "transformers": [
-        "removeNulls"
-      ]
+      "transformers": []
     },
     {
-      "id": "crs-941-370",
-      "name": "JavaScript global variable found",
+      "id": "crs-941-380",
+      "name": "AngularJS client side template injection detected",
       "tags": {
-        "type": "xss",
-        "crs_id": "941370",
+        "type": "js_code_injection",
+        "crs_id": "941380",
         "category": "attack_attempt"
       },
       "conditions": [
@@ -987,10 +1142,10 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?:self|document|this|top|window)\\s*(?:/\\*|[\\[)]).+?(?:\\]|\\*/)",
+            "regex": "^{{[\\w\\s\\.]*[^\\w\\.\\s}][^}]*}}$",
             "options": {
               "case_sensitive": true,
-              "min_length": 6
+              "min_length": 5
             }
           },
           "operator": "match_regex"
@@ -999,11 +1154,11 @@
       "transformers": []
     },
     {
-      "id": "crs-941-380",
-      "name": "AngularJS client side template injection detected",
+      "id": "crs-942-151",
+      "name": "SQL function injection Attack",
       "tags": {
-        "type": "js_code_injection",
-        "crs_id": "941380",
+        "type": "sql_injection",
+        "crs_id": "942151",
         "category": "attack_attempt"
       },
       "conditions": [
@@ -1020,10 +1175,10 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "^{{[\\w\\s\\.]*[^\\w\\.\\s}][^}]*}}$",
+            "regex": "\\b(?:s(?:q(?:lite_(?:compileoption_(?:used|get)|source_id)|rt)|t(?:d(?:dev_(?:sam|po)p)?|r(?:_to_date|cmp))|ub(?:str(?:ing(?:_index)?)?|(?:dat|tim)e)|e(?:ssion_user|c_to_time)|ys(?:tem_user|date)|ha[12]?|oundex|chema|pace|in)|c(?:o(?:n(?:v(?:ert(?:_tz)?)?|cat(?:_ws)?|nection_id)|(?:mpres)?s|ercibility|llation|alesce|t)|ur(?:rent_(?:time(?:stamp)?|date|user)|(?:dat|tim)e)|ha(?:racte)?r_length|iel(?:ing)?|r32)|i(?:s(?:_(?:ipv(?:4(?:_(?:compat|mapped))?|6)|n(?:ot(?:_null)?|ull)|(?:free|used)_lock)|null)|n(?:et(?:6_(?:aton|ntoa)|_(?:aton|ntoa))|s(?:ert|tr)|terval)|fnull)|l(?:o(?:ca(?:ltimestamp|te)|g(?:10|2)|ad_file|wer)|i(?:kel(?:ihood|y)|nestring)|ast_(?:inser_id|day)|e(?:as|f)t|case|trim|pad)|d(?:a(?:t(?:e(?:_(?:format|add|sub)|diff)|abase)|y(?:of(?:month|week|year)|name))|e(?:s_(?:de|en)crypt|grees|code)|count|ump)|u(?:n(?:compress(?:ed_length)?|ix_timestamp|likely|hex)|tc_(?:time(?:stamp)?|date)|uid(?:_short)?|pdatexml|case)|t(?:ime(?:_(?:format|to_sec)|stamp(?:diff|add)?|diff)|o(?:(?:second|day)s|_base64|n?char)|r(?:uncate|im))|m(?:a(?:ke(?:_set|date)|ster_pos_wait)|ulti(?:po(?:lygon|int)|linestring)|i(?:crosecon)?d|onthname|d5)|g(?:e(?:t_(?:format|lock)|ometrycollection)|(?:r(?:oup_conca|eates)|tid_subse)t)|p(?:o(?:(?:siti|lyg)on|w)|eriod_(?:diff|add)|rocedure_analyse|g_sleep)|a(?:s(?:cii(?:str)?|in)|es_(?:de|en)crypt|dd(?:dat|tim)e|tan2?)|f(?:rom_(?:unixtime|base64|days)|i(?:el|n)d_in_set|ound_rows)|e(?:x(?:tract(?:value)?|p(?:ort_set)?)|nc(?:rypt|ode)|lt)|b(?:i(?:t_(?:length|count|x?or|and)|n_to_num)|enchmark)|r(?:a(?:wtohex|dians|nd)|elease_lock|ow_count|trim|pad)|o(?:(?:ld_passwo)?rd|ct(?:et_length)?)|we(?:ek(?:ofyear|day)|ight_string)|json(?:_(?:object|array))?|n(?:ame_const|ot_in|ullif)|var(?:_(?:sam|po)p|iance)|qu(?:arter|ote)|hex(?:toraw)?|yearweek|xmltype)\\W*\\(",
             "options": {
-              "case_sensitive": true,
-              "min_length": 5
+              "case_sensitive": false,
+              "min_length": 4
             }
           },
           "operator": "match_regex"
@@ -1063,6 +1218,41 @@
       ],
       "transformers": []
     },
+    {
+      "id": "crs-942-190",
+      "name": "Detects MSSQL code execution and information gathering attempts",
+      "tags": {
+        "type": "sql_injection",
+        "crs_id": "942190",
+        "category": "attack_attempt"
+      },
+      "conditions": [
+        {
+          "parameters": {
+            "inputs": [
+              {
+                "address": "server.request.query"
+              },
+              {
+                "address": "server.request.body"
+              },
+              {
+                "address": "server.request.path_params"
+              },
+              {
+                "address": "grpc.server.request.message"
+              }
+            ],
+            "regex": "(?:\\b(?:u(?:nion(?:[\\w(?:\\s]*?select|\\sselect\\s@)|ser\\s*?\\([^\\)]*?)|(?:c(?:onnection_id|urrent_user)|database)\\s*?\\([^\\)]*?|s(?:chema\\s*?\\([^\\)]*?|elect.*?\\w?user\\()|into[\\s+]+(?:dump|out)file\\s*?[\\\"'`]|from\\W+information_schema\\W|exec(?:ute)?\\s+master\\.)|[\\\"'`](?:;?\\s*?(?:union\\b\\s*?(?:(?:distin|sele)ct|all)|having|select)\\b\\s*?[^\\s]|\\s*?!\\s*?[\\\"'`\\w])|\\s*?exec(?:ute)?.*?\\Wxp_cmdshell|\\Wiif\\s*?\\()",
+            "options": {
+              "min_length": 3
+            }
+          },
+          "operator": "match_regex"
+        }
+      ],
+      "transformers": []
+    },
     {
       "id": "crs-942-230",
       "name": "Detects conditional SQL injection attempts",
@@ -1085,9 +1275,9 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?i:[\\s(?:)]case\\s+when.*?then|\\)\\s*?like\\s*?\\(|select.*?having\\s*?[^\\s]+\\s*?[^\\w\\s]|if\\s?\\([\\d\\w]\\s*?[=<>~])",
+            "regex": "(?:select.*?having\\s*?[^\\s]+\\s*?[^\\w\\s]|[\\s(?:)]case\\s+when.*?then|\\)\\s*?like\\s*?\\()",
             "options": {
-              "case_sensitive": true,
+              "case_sensitive": false,
               "min_length": 5
             }
           },
@@ -1150,7 +1340,7 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?:;\\s*?(?:(?:(?:trunc|cre|upd)at|renam)e|d(?:e(?:lete|sc)|rop)|(?:inser|selec)t|alter|load)\\b\\s*?[\\[(?:]?\\w{2,}|create\\s+function\\s+.+\\s+returns)",
+            "regex": "(?:;\\s*?(?:(?:(?:trunc|cre|upd)at|renam)e|d(?:e(?:lete|sc)|rop)|(?:inser|selec)t|alter|load)\\b\\s*?[\\[(?:]?\\w{2,}|create\\s+function\\s.+\\sreturns)",
             "options": {
               "min_length": 7
             }
@@ -1219,7 +1409,7 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?:\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|/))(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8|e)0%80%ae|2(?:(?:5(?:c0%25a|2))?e|%45)|u(?:(?:002|ff0)e|2024)|%32(?:%(?:%6|4)5|E)|c0(?:%[256aef]e|\\.))|\\.(?:%0[01]|\\?)?|\\?\\.?|0x2e){2}(?:\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|/))",
+            "regex": "(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\/|\\x5c)(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8|e)0%80%ae|2(?:(?:5(?:c0%25a|2))?e|%45)|u(?:(?:002|ff0)e|2024)|%32(?:%(?:%6|4)5|E)|c0(?:%[256aef]e|\\.))|\\.(?:%0[01]|\\?)?|\\?\\.?|0x2e){2,3}(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\/|\\x5c)",
             "options": {
               "min_length": 4
             }
@@ -1250,7 +1440,7 @@
                 "address": "server.request.path_params"
               }
             ],
-            "regex": "(?:(?:^|[\\\\\\\\/])\\.\\.[\\\\\\\\/]|[\\\\\\\\/]\\.\\.(?:[\\\\\\\\/]|$))",
+            "regex": "(?:(?:^|[\\x5c/])\\.{2,3}[\\x5c/]|[\\x5c/]\\.{2,3}(?:[\\x5c/]|$))",
             "options": {
               "case_sensitive": true,
               "min_length": 3
diff --git a/lib/datadog/appsec/contrib/rack/gateway/watcher.rb b/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
index b4741d7be50..00e3d97017d 100644
--- a/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
@@ -26,8 +26,8 @@ def self.watch
                   trace = active_trace
                   span = active_span
 
-                  Rack::Reactive::Request.subscribe(op, waf_context) do |action, result, _block|
-                    record = [:block, :monitor].include?(action)
+                  Rack::Reactive::Request.subscribe(op, waf_context) do |result, _block|
+                    record = [:match].include?(result.status)
                     if record
                       # TODO: should this hash be an Event instance instead?
                       event = {
@@ -35,14 +35,14 @@ def self.watch
                         trace: trace,
                         span: span,
                         request: request,
-                        action: action
+                        actions: result.actions
                       }
 
                       waf_context.events << event
                     end
                   end
 
-                  _action, _result, block = Rack::Reactive::Request.publish(op, request)
+                  _result, block = Rack::Reactive::Request.publish(op, request)
                 end
 
                 next [nil, [[:block, event]]] if block
@@ -66,8 +66,8 @@ def self.watch
                   trace = active_trace
                   span = active_span
 
-                  Rack::Reactive::Response.subscribe(op, waf_context) do |action, result, _block|
-                    record = [:block, :monitor].include?(action)
+                  Rack::Reactive::Response.subscribe(op, waf_context) do |result, _block|
+                    record = [:match].include?(result.status)
                     if record
                       # TODO: should this hash be an Event instance instead?
                       event = {
@@ -75,14 +75,14 @@ def self.watch
                         trace: trace,
                         span: span,
                         response: response,
-                        action: action
+                        actions: result.actions
                       }
 
                       waf_context.events << event
                     end
                   end
 
-                  _action, _result, block = Rack::Reactive::Response.publish(op, response)
+                  _result, block = Rack::Reactive::Response.publish(op, response)
                 end
 
                 next [nil, [[:block, event]]] if block
@@ -106,8 +106,8 @@ def self.watch
                   trace = active_trace
                   span = active_span
 
-                  Rack::Reactive::RequestBody.subscribe(op, waf_context) do |action, result, _block|
-                    record = [:block, :monitor].include?(action)
+                  Rack::Reactive::RequestBody.subscribe(op, waf_context) do |result, _block|
+                    record = [:match].include?(result.status)
                     if record
                       # TODO: should this hash be an Event instance instead?
                       event = {
@@ -115,14 +115,14 @@ def self.watch
                         trace: trace,
                         span: span,
                         request: request,
-                        action: action
+                        actions: result.actions
                       }
 
                       waf_context.events << event
                     end
                   end
 
-                  _action, _result, block = Rack::Reactive::RequestBody.publish(op, request)
+                  _result, block = Rack::Reactive::RequestBody.publish(op, request)
                 end
 
                 next [nil, [[:block, event]]] if block
diff --git a/lib/datadog/appsec/contrib/rack/reactive/request.rb b/lib/datadog/appsec/contrib/rack/reactive/request.rb
index eeac0cea352..abaa5761c56 100644
--- a/lib/datadog/appsec/contrib/rack/reactive/request.rb
+++ b/lib/datadog/appsec/contrib/rack/reactive/request.rb
@@ -54,20 +54,20 @@ def self.subscribe(op, waf_context)
                 }
 
                 waf_timeout = Datadog::AppSec.settings.waf_timeout
-                action, result = waf_context.run(waf_args, waf_timeout)
+                result = waf_context.run(waf_args, waf_timeout)
 
                 Datadog.logger.debug { "WAF TIMEOUT: #{result.inspect}" } if result.timeout
 
-                # TODO: encapsulate return array in a type
-                case action
-                when :monitor
+                case result.status
+                when :match
                   Datadog.logger.debug { "WAF: #{result.inspect}" }
-                  yield [action, result, false]
-                when :block
-                  Datadog.logger.debug { "WAF: #{result.inspect}" }
-                  yield [action, result, true]
-                  throw(:block, [action, result, true])
-                when :good
+
+                  block = result.actions.include?('block')
+
+                  yield [result, block]
+
+                  throw(:block, [result, true]) if block
+                when :ok
                   Datadog.logger.debug { "WAF OK: #{result.inspect}" }
                 when :invalid_call
                   Datadog.logger.debug { "WAF CALL ERROR: #{result.inspect}" }
diff --git a/lib/datadog/appsec/contrib/rack/reactive/request_body.rb b/lib/datadog/appsec/contrib/rack/reactive/request_body.rb
index b9d6614954e..8057ce4cf33 100644
--- a/lib/datadog/appsec/contrib/rack/reactive/request_body.rb
+++ b/lib/datadog/appsec/contrib/rack/reactive/request_body.rb
@@ -32,20 +32,20 @@ def self.subscribe(op, waf_context)
                 }
 
                 waf_timeout = Datadog::AppSec.settings.waf_timeout
-                action, result = waf_context.run(waf_args, waf_timeout)
+                result = waf_context.run(waf_args, waf_timeout)
 
                 Datadog.logger.debug { "WAF TIMEOUT: #{result.inspect}" } if result.timeout
 
-                # TODO: encapsulate return array in a type
-                case action
-                when :monitor
+                case result.status
+                when :match
                   Datadog.logger.debug { "WAF: #{result.inspect}" }
-                  yield [action, result, false]
-                when :block
-                  Datadog.logger.debug { "WAF: #{result.inspect}" }
-                  yield [action, result, true]
-                  throw(:block, [action, result, true])
-                when :good
+
+                  block = result.actions.include?('block')
+
+                  yield [result, block]
+
+                  throw(:block, [result, true]) if block
+                when :ok
                   Datadog.logger.debug { "WAF OK: #{result.inspect}" }
                 when :invalid_call
                   Datadog.logger.debug { "WAF CALL ERROR: #{result.inspect}" }
diff --git a/lib/datadog/appsec/contrib/rack/reactive/response.rb b/lib/datadog/appsec/contrib/rack/reactive/response.rb
index a1d8e95582c..6fd15055c10 100644
--- a/lib/datadog/appsec/contrib/rack/reactive/response.rb
+++ b/lib/datadog/appsec/contrib/rack/reactive/response.rb
@@ -32,20 +32,20 @@ def self.subscribe(op, waf_context)
                 }
 
                 waf_timeout = Datadog::AppSec.settings.waf_timeout
-                action, result = waf_context.run(waf_args, waf_timeout)
+                result = waf_context.run(waf_args, waf_timeout)
 
                 Datadog.logger.debug { "WAF TIMEOUT: #{result.inspect}" } if result.timeout
 
-                # TODO: encapsulate return array in a type
-                case action
-                when :monitor
+                case result.status
+                when :match
                   Datadog.logger.debug { "WAF: #{result.inspect}" }
-                  yield [action, result, false]
-                when :block
-                  Datadog.logger.debug { "WAF: #{result.inspect}" }
-                  yield [action, result, true]
-                  throw(:block, [action, result, true])
-                when :good
+
+                  block = result.actions.include?('block')
+
+                  yield [result, block]
+
+                  throw(:block, [result, true]) if block
+                when :ok
                   Datadog.logger.debug { "WAF OK: #{result.inspect}" }
                 when :invalid_call
                   Datadog.logger.debug { "WAF CALL ERROR: #{result.inspect}" }
diff --git a/lib/datadog/appsec/contrib/rails/gateway/watcher.rb b/lib/datadog/appsec/contrib/rails/gateway/watcher.rb
index c8fcdfc5ea6..e6d129eb732 100644
--- a/lib/datadog/appsec/contrib/rails/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/rails/gateway/watcher.rb
@@ -22,8 +22,8 @@ def self.watch
                   trace = active_trace
                   span = active_span
 
-                  Rails::Reactive::Action.subscribe(op, waf_context) do |action, result, _block|
-                    record = [:block, :monitor].include?(action)
+                  Rails::Reactive::Action.subscribe(op, waf_context) do |result, _block|
+                    record = [:match].include?(result.status)
                     if record
                       # TODO: should this hash be an Event instance instead?
                       event = {
@@ -31,14 +31,14 @@ def self.watch
                         trace: trace,
                         span: span,
                         request: request,
-                        action: action
+                        actions: result.actions
                       }
 
                       waf_context.events << event
                     end
                   end
 
-                  _action, _result, block = Rails::Reactive::Action.publish(op, request)
+                  _result, block = Rails::Reactive::Action.publish(op, request)
                 end
 
                 next [nil, [[:block, event]]] if block
diff --git a/lib/datadog/appsec/contrib/rails/reactive/action.rb b/lib/datadog/appsec/contrib/rails/reactive/action.rb
index 4d00c5676eb..7aa33abc3b3 100644
--- a/lib/datadog/appsec/contrib/rails/reactive/action.rb
+++ b/lib/datadog/appsec/contrib/rails/reactive/action.rb
@@ -36,20 +36,20 @@ def self.subscribe(op, waf_context)
                 }
 
                 waf_timeout = Datadog::AppSec.settings.waf_timeout
-                action, result = waf_context.run(waf_args, waf_timeout)
+                result = waf_context.run(waf_args, waf_timeout)
 
                 Datadog.logger.debug { "WAF TIMEOUT: #{result.inspect}" } if result.timeout
 
-                # TODO: encapsulate return array in a type
-                case action
-                when :monitor
+                case result.status
+                when :match
                   Datadog.logger.debug { "WAF: #{result.inspect}" }
-                  yield [action, result, false]
-                when :block
-                  Datadog.logger.debug { "WAF: #{result.inspect}" }
-                  yield [action, result, true]
-                  throw(:block, [action, result, true])
-                when :good
+
+                  block = result.actions.include?('block')
+
+                  yield [result, block]
+
+                  throw(:block, [result, true]) if block
+                when :ok
                   Datadog.logger.debug { "WAF OK: #{result.inspect}" }
                 when :invalid_call
                   Datadog.logger.debug { "WAF CALL ERROR: #{result.inspect}" }
diff --git a/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb b/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
index b975a1d0c6c..0c200190440 100644
--- a/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
@@ -24,8 +24,8 @@ def self.watch
                   trace = active_trace
                   span = active_span
 
-                  Rack::Reactive::RequestBody.subscribe(op, waf_context) do |action, result, _block|
-                    record = [:block, :monitor].include?(action)
+                  Rack::Reactive::RequestBody.subscribe(op, waf_context) do |result, _block|
+                    record = [:match].include?(result.status)
                     if record
                       # TODO: should this hash be an Event instance instead?
                       event = {
@@ -33,14 +33,14 @@ def self.watch
                         trace: trace,
                         span: span,
                         request: request,
-                        action: action
+                        actions: result.actions
                       }
 
                       waf_context.events << event
                     end
                   end
 
-                  _action, _result, block = Rack::Reactive::RequestBody.publish(op, request)
+                  _result, block = Rack::Reactive::RequestBody.publish(op, request)
                 end
 
                 next [nil, [[:block, event]]] if block
@@ -64,8 +64,8 @@ def self.watch
                   trace = active_trace
                   span = active_span
 
-                  Sinatra::Reactive::Routed.subscribe(op, waf_context) do |action, result, _block|
-                    record = [:block, :monitor].include?(action)
+                  Sinatra::Reactive::Routed.subscribe(op, waf_context) do |result, _block|
+                    record = [:match].include?(result.status)
                     if record
                       # TODO: should this hash be an Event instance instead?
                       event = {
@@ -73,14 +73,14 @@ def self.watch
                         trace: trace,
                         span: span,
                         request: request,
-                        action: action
+                        actions: result.actions
                       }
 
                       waf_context.events << event
                     end
                   end
 
-                  _action, _result, block = Sinatra::Reactive::Routed.publish(op, [request, route_params])
+                  _result, block = Sinatra::Reactive::Routed.publish(op, [request, route_params])
                 end
 
                 next [nil, [[:block, event]]] if block
diff --git a/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb b/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb
index fe89e20fe1c..60d65c1400e 100644
--- a/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb
+++ b/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb
@@ -31,20 +31,20 @@ def self.subscribe(op, waf_context)
                 }
 
                 waf_timeout = Datadog::AppSec.settings.waf_timeout
-                action, result = waf_context.run(waf_args, waf_timeout)
+                result = waf_context.run(waf_args, waf_timeout)
 
                 Datadog.logger.debug { "WAF TIMEOUT: #{result.inspect}" } if result.timeout
 
-                # TODO: encapsulate return array in a type
-                case action
-                when :monitor
+                case result.status
+                when :match
                   Datadog.logger.debug { "WAF: #{result.inspect}" }
-                  yield [action, result, false]
-                when :block
-                  Datadog.logger.debug { "WAF: #{result.inspect}" }
-                  yield [action, result, true]
-                  throw(:block, [action, result, true])
-                when :good
+
+                  block = result.actions.include?('block')
+
+                  yield [result, block]
+
+                  throw(:block, [result, true]) if block
+                when :ok
                   Datadog.logger.debug { "WAF OK: #{result.inspect}" }
                 when :invalid_call
                   Datadog.logger.debug { "WAF CALL ERROR: #{result.inspect}" }
diff --git a/lib/datadog/appsec/processor.rb b/lib/datadog/appsec/processor.rb
index 6c965526358..012544478fb 100644
--- a/lib/datadog/appsec/processor.rb
+++ b/lib/datadog/appsec/processor.rb
@@ -31,7 +31,7 @@ def initialize(processor)
         def run(*args)
           start_ns = Core::Utils::Time.get_time(:nanosecond)
 
-          ret, res = @context.run(*args)
+          _code, res = @context.run(*args)
 
           stop_ns = Core::Utils::Time.get_time(:nanosecond)
 
@@ -39,7 +39,11 @@ def run(*args)
           @time_ext_ns += (stop_ns - start_ns)
           @timeouts += 1 if res.timeout
 
-          [ret, res]
+          res
+        end
+
+        def finalize
+          @context.finalize
         end
       end
 
@@ -64,6 +68,18 @@ def new_context
         Context.new(self)
       end
 
+      def update_rule_data(data)
+        @handle.update_rule_data(data)
+      end
+
+      def toggle_rules(map)
+        @handle.toggle_rules(map)
+      end
+
+      def finalize
+        @handle.finalize
+      end
+
       protected
 
       attr_reader :handle
diff --git a/spec/datadog/appsec/processor_spec.rb b/spec/datadog/appsec/processor_spec.rb
index 577fd4b1f7c..3b850ff1e92 100644
--- a/spec/datadog/appsec/processor_spec.rb
+++ b/spec/datadog/appsec/processor_spec.rb
@@ -112,6 +112,36 @@
       it { expect(described_class.new.send(:load_ruleset)).to be true }
     end
 
+    context 'when ruleset is :recommended' do
+      let(:ruleset) { :recommended }
+
+      before do
+        expect(Datadog::AppSec::Assets).to receive(:waf_rules).with(:recommended).and_call_original.twice
+      end
+
+      it { expect(described_class.new.send(:load_ruleset)).to be true }
+    end
+
+    context 'when ruleset is :strict' do
+      let(:ruleset) { :strict }
+
+      before do
+        expect(Datadog::AppSec::Assets).to receive(:waf_rules).with(:strict).and_call_original.twice
+      end
+
+      it { expect(described_class.new.send(:load_ruleset)).to be true }
+    end
+
+    context 'when ruleset is :risky' do
+      let(:ruleset) { :risky }
+
+      before do
+        expect(Datadog::AppSec::Assets).to receive(:waf_rules).with(:risky).and_call_original.twice
+      end
+
+      it { expect(described_class.new.send(:load_ruleset)).to be true }
+    end
+
     context 'when ruleset is an existing path' do
       let(:ruleset) { "#{__dir__}/../../../lib/datadog/appsec/assets/waf_rules/recommended.json" }
 
@@ -243,12 +273,30 @@
     let(:input_safe) { { 'server.request.headers.no_cookies' => { 'user-agent' => 'Ruby' } } }
     let(:input_sqli) { { 'server.request.query' => { 'q' => '1 OR 1;' } } }
     let(:input_scanner) { { 'server.request.headers.no_cookies' => { 'user-agent' => 'Nessus SOAP' } } }
+    let(:input_client_ip) { { 'http.client_ip' => '1.2.3.4' } }
+
+    let(:rule_data_client_ip) do
+      [
+        {
+          'id' => 'blocked_ips',
+          'type' => 'data_with_expiration',
+          'data' => [{ 'value' => '1.2.3.4', 'expiration' => (Time.now + 1000).to_i }]
+        }
+      ]
+    end
+
+    let(:rule_toggle_client_ip) { { 'blk-001-001' => false } }
 
     let(:input) { input_scanner }
 
     let(:processor) { described_class.new }
     subject(:context) { processor.new_context }
 
+    after do
+      context.finalize
+      processor.finalize
+    end
+
     it { is_expected.to be_a Datadog::AppSec::Processor::Context }
 
     describe 'Context' do
@@ -256,7 +304,7 @@
       let(:timeout) { 10_000_000_000 }
 
       let(:runs) { Array.new(run_count) { context.run(input, timeout) } }
-      let(:results) { runs.map(&:last) }
+      let(:results) { runs }
       let(:overall_runtime) { results.reduce(0) { |a, e| a + e.total_runtime } }
 
       let(:run) do
@@ -271,9 +319,16 @@
         results.first
       end
 
-      before { runs }
+      let(:rule_data) { nil }
+      let(:rule_toggle) { nil }
+
+      before do
+        processor.update_rule_data(rule_data) if rule_data
+        processor.toggle_rules(rule_toggle) if rule_toggle
+        runs
+      end
 
-      it { expect(result.action).to eq :monitor }
+      it { expect(result.status).to eq :match }
       it { expect(context.time_ns).to be > 0 }
       it { expect(context.time_ext_ns).to be > 0 }
       it { expect(context.time_ext_ns).to be > context.time_ns }
@@ -283,7 +338,7 @@
       context 'with timeout' do
         let(:timeout) { 0 }
 
-        it { expect(result.action).to eq :good }
+        it { expect(result.status).to eq :ok }
         it { expect(context.time_ns).to eq 0 }
         it { expect(context.time_ext_ns).to be > 0 }
         it { expect(context.timeouts).to eq run_count }
@@ -297,7 +352,7 @@
         context 'with timeout' do
           let(:timeout) { 0 }
 
-          it { expect(results.first.action).to eq :good }
+          it { expect(results.first.status).to eq :ok }
           it { expect(context.time_ns).to eq 0 }
           it { expect(context.time_ext_ns).to be > 0 }
           it { expect(context.timeouts).to eq run_count }
@@ -306,17 +361,23 @@
 
       describe '#run' do
         let(:matches) do
-          results.reject { |r| r.action == :good }
+          results.reject { |r| r.status == :ok }
         end
 
         let(:data) do
           matches.map(&:data).flatten
         end
 
+        let(:actions) do
+          matches.map(&:actions)
+        end
+
         context 'no attack' do
           let(:input) { input_safe }
 
           it { expect(matches).to eq [] }
+          it { expect(data).to eq [] }
+          it { expect(actions).to eq [] }
         end
 
         context 'one attack' do
@@ -324,6 +385,7 @@
 
           it { expect(matches).to have_attributes(count: 1) }
           it { expect(data).to have_attributes(count: 1) }
+          it { expect(actions).to eq [[]] }
         end
 
         context 'multiple attacks per run' do
@@ -331,6 +393,7 @@
 
           it { expect(matches).to have_attributes(count: 1) }
           it { expect(data).to have_attributes(count: 2) }
+          it { expect(actions).to eq [[]] }
         end
 
         context 'multiple runs' do
@@ -344,6 +407,7 @@
 
             it { expect(matches).to have_attributes(count: 1) }
             it { expect(data).to have_attributes(count: 1) }
+            it { expect(actions).to eq [[]] }
           end
 
           context 'different attacks' do
@@ -356,8 +420,28 @@
 
             it { expect(matches).to have_attributes(count: 2) }
             it { expect(data).to have_attributes(count: 2) }
+            it { expect(actions).to eq [[], []] }
           end
         end
+
+        context 'one blockable attack' do
+          let(:input) { input_client_ip }
+          let(:rule_data) { rule_data_client_ip }
+
+          it { expect(matches).to have_attributes(count: 1) }
+          it { expect(data).to have_attributes(count: 1) }
+          it { expect(actions).to eq [['block']] }
+        end
+
+        context 'one blockable attack on a disabled rule' do
+          let(:input) { input_client_ip }
+          let(:rule_data) { rule_data_client_ip }
+          let(:rule_toggle) { rule_toggle_client_ip }
+
+          it { expect(matches).to have_attributes(count: 0) }
+          it { expect(data).to have_attributes(count: 0) }
+          it { expect(actions).to have_attributes(count: 0) }
+        end
       end
     end
   end

From 891ffdf49e094ae65e2ce9db98c424860e195250 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 16:09:57 +0200
Subject: [PATCH 02/27] Add AppSec spec rake tasks

---
 Rakefile | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/Rakefile b/Rakefile
index ed0e694c752..73223a789da 100644
--- a/Rakefile
+++ b/Rakefile
@@ -168,7 +168,7 @@ namespace :spec do
   end
 
   namespace :appsec do
-    task all: [:main]
+    task all: [:main, :rack, :rails, :sinatra]
 
     # Datadog AppSec main specs
     RSpec::Core::RakeTask.new(:main) do |t, args|
@@ -177,6 +177,18 @@ namespace :spec do
                           ' spec/datadog/appsec/**/{auto_instrument,autoload}_spec.rb'
       t.rspec_opts = args.to_a.join(' ')
     end
+
+    # Datadog AppSec integrations
+    [
+      :rack,
+      :sinatra,
+      :rails,
+    ].each do |contrib|
+      RSpec::Core::RakeTask.new(contrib) do |t, args|
+        t.pattern = "spec/datadog/appsec/contrib/#{contrib}/**/*_spec.rb"
+        t.rspec_opts = args.to_a.join(' ')
+      end
+    end
   end
 
   task appsec: [:'appsec:all']

From 7da61564a3620e0ce68518721b7f70c26d4fd620 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 16:24:31 +0200
Subject: [PATCH 03/27] Update libddwaf in appraisal locks

---
 gemfiles/jruby_9.2.18.0_contrib.gemfile.lock                  | 4 ++--
 gemfiles/jruby_9.2.18.0_contrib_old.gemfile.lock              | 4 ++--
 gemfiles/jruby_9.2.18.0_core_old.gemfile.lock                 | 4 ++--
 gemfiles/jruby_9.2.18.0_cucumber3.gemfile.lock                | 4 ++--
 gemfiles/jruby_9.2.18.0_cucumber4.gemfile.lock                | 4 ++--
 gemfiles/jruby_9.2.18.0_cucumber5.gemfile.lock                | 4 ++--
 gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile.lock            | 4 ++--
 gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile.lock          | 4 ++--
 gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock    | 4 ++--
 ..._9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock  | 4 ++--
 gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock   | 4 ++--
 gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile.lock           | 4 ++--
 gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile.lock         | 4 ++--
 gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock   | 4 ++--
 gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock | 4 ++--
 gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock  | 4 ++--
 gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile.lock            | 4 ++--
 gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile.lock          | 4 ++--
 gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock    | 4 ++--
 ..._9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock  | 4 ++--
 gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock   | 4 ++--
 gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile.lock           | 4 ++--
 gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile.lock           | 4 ++--
 gemfiles/jruby_9.2.8.0_contrib.gemfile.lock                   | 4 ++--
 gemfiles/jruby_9.2.8.0_contrib_old.gemfile.lock               | 4 ++--
 gemfiles/jruby_9.2.8.0_core_old.gemfile.lock                  | 4 ++--
 gemfiles/jruby_9.2.8.0_cucumber3.gemfile.lock                 | 4 ++--
 gemfiles/jruby_9.2.8.0_cucumber4.gemfile.lock                 | 4 ++--
 gemfiles/jruby_9.2.8.0_cucumber5.gemfile.lock                 | 4 ++--
 gemfiles/jruby_9.2.8.0_rails5_mysql2.gemfile.lock             | 4 ++--
 gemfiles/jruby_9.2.8.0_rails5_postgres.gemfile.lock           | 4 ++--
 gemfiles/jruby_9.2.8.0_rails5_postgres_redis.gemfile.lock     | 4 ++--
 ...y_9.2.8.0_rails5_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/jruby_9.2.8.0_rails5_postgres_sidekiq.gemfile.lock   | 4 ++--
 gemfiles/jruby_9.2.8.0_rails5_semantic_logger.gemfile.lock    | 4 ++--
 gemfiles/jruby_9.2.8.0_rails61_mysql2.gemfile.lock            | 4 ++--
 gemfiles/jruby_9.2.8.0_rails61_postgres.gemfile.lock          | 4 ++--
 gemfiles/jruby_9.2.8.0_rails61_postgres_redis.gemfile.lock    | 4 ++--
 gemfiles/jruby_9.2.8.0_rails61_postgres_sidekiq.gemfile.lock  | 4 ++--
 gemfiles/jruby_9.2.8.0_rails61_semantic_logger.gemfile.lock   | 4 ++--
 gemfiles/jruby_9.2.8.0_rails6_mysql2.gemfile.lock             | 4 ++--
 gemfiles/jruby_9.2.8.0_rails6_postgres.gemfile.lock           | 4 ++--
 gemfiles/jruby_9.2.8.0_rails6_postgres_redis.gemfile.lock     | 4 ++--
 ...y_9.2.8.0_rails6_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/jruby_9.2.8.0_rails6_postgres_sidekiq.gemfile.lock   | 4 ++--
 gemfiles/jruby_9.2.8.0_rails6_semantic_logger.gemfile.lock    | 4 ++--
 gemfiles/jruby_9.2.8.0_resque2_redis3.gemfile.lock            | 4 ++--
 gemfiles/jruby_9.2.8.0_resque2_redis4.gemfile.lock            | 4 ++--
 gemfiles/jruby_9.3.4.0_contrib.gemfile.lock                   | 4 ++--
 gemfiles/jruby_9.3.4.0_contrib_old.gemfile.lock               | 4 ++--
 gemfiles/jruby_9.3.4.0_core_old.gemfile.lock                  | 4 ++--
 gemfiles/jruby_9.3.4.0_cucumber3.gemfile.lock                 | 4 ++--
 gemfiles/jruby_9.3.4.0_cucumber4.gemfile.lock                 | 4 ++--
 gemfiles/jruby_9.3.4.0_cucumber5.gemfile.lock                 | 4 ++--
 gemfiles/jruby_9.3.4.0_rails5_mysql2.gemfile.lock             | 4 ++--
 gemfiles/jruby_9.3.4.0_rails5_postgres.gemfile.lock           | 4 ++--
 gemfiles/jruby_9.3.4.0_rails5_postgres_redis.gemfile.lock     | 4 ++--
 ...y_9.3.4.0_rails5_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/jruby_9.3.4.0_rails5_postgres_sidekiq.gemfile.lock   | 4 ++--
 gemfiles/jruby_9.3.4.0_rails5_semantic_logger.gemfile.lock    | 4 ++--
 gemfiles/jruby_9.3.4.0_rails61_mysql2.gemfile.lock            | 4 ++--
 gemfiles/jruby_9.3.4.0_rails61_postgres.gemfile.lock          | 4 ++--
 gemfiles/jruby_9.3.4.0_rails61_postgres_redis.gemfile.lock    | 4 ++--
 gemfiles/jruby_9.3.4.0_rails61_postgres_sidekiq.gemfile.lock  | 4 ++--
 gemfiles/jruby_9.3.4.0_rails61_semantic_logger.gemfile.lock   | 4 ++--
 gemfiles/jruby_9.3.4.0_rails6_mysql2.gemfile.lock             | 4 ++--
 gemfiles/jruby_9.3.4.0_rails6_postgres.gemfile.lock           | 4 ++--
 gemfiles/jruby_9.3.4.0_rails6_postgres_redis.gemfile.lock     | 4 ++--
 ...y_9.3.4.0_rails6_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/jruby_9.3.4.0_rails6_postgres_sidekiq.gemfile.lock   | 4 ++--
 gemfiles/jruby_9.3.4.0_rails6_semantic_logger.gemfile.lock    | 4 ++--
 gemfiles/jruby_9.3.4.0_resque2_redis3.gemfile.lock            | 4 ++--
 gemfiles/jruby_9.3.4.0_resque2_redis4.gemfile.lock            | 4 ++--
 gemfiles/ruby_2.1.10_contrib.gemfile.lock                     | 4 ++--
 gemfiles/ruby_2.1.10_core_old.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock              | 4 ++--
 gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock            | 4 ++--
 gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock    | 4 ++--
 gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock             | 4 ++--
 gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.2.10_contrib.gemfile.lock                     | 4 ++--
 gemfiles/ruby_2.2.10_core_old.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock              | 4 ++--
 gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock            | 4 ++--
 gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock    | 4 ++--
 gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock             | 4 ++--
 gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock     | 4 ++--
 gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock             | 4 ++--
 gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock       | 4 ++--
 ...by_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock     | 4 ++--
 gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.3.8_contrib.gemfile.lock                      | 4 ++--
 gemfiles/ruby_2.3.8_contrib_old.gemfile.lock                  | 4 ++--
 gemfiles/ruby_2.3.8_core_old.gemfile.lock                     | 4 ++--
 gemfiles/ruby_2.3.8_cucumber3.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.3.8_cucumber4.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock             | 4 ++--
 gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock     | 4 ++--
 gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock                | 4 ++--
 gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock              | 4 ++--
 gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock        | 4 ++--
 gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock                | 4 ++--
 gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock              | 4 ++--
 gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock        | 4 ++--
 ...uby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.4.10_contrib.gemfile.lock                     | 4 ++--
 gemfiles/ruby_2.4.10_contrib_old.gemfile.lock                 | 4 ++--
 gemfiles/ruby_2.4.10_core_old.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.4.10_cucumber3.gemfile.lock                   | 4 ++--
 gemfiles/ruby_2.4.10_cucumber4.gemfile.lock                   | 4 ++--
 gemfiles/ruby_2.4.10_rails5_mysql2.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.4.10_rails5_postgres.gemfile.lock             | 4 ++--
 gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile.lock       | 4 ++--
 ...by_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock     | 4 ++--
 gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.4.10_resque2_redis3.gemfile.lock              | 4 ++--
 gemfiles/ruby_2.4.10_resque2_redis4.gemfile.lock              | 4 ++--
 gemfiles/ruby_2.5.9_contrib.gemfile.lock                      | 4 ++--
 gemfiles/ruby_2.5.9_contrib_old.gemfile.lock                  | 4 ++--
 gemfiles/ruby_2.5.9_core_old.gemfile.lock                     | 4 ++--
 gemfiles/ruby_2.5.9_cucumber3.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.5.9_cucumber4.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.5.9_cucumber5.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.5.9_rails5_mysql2.gemfile.lock                | 4 ++--
 gemfiles/ruby_2.5.9_rails5_postgres.gemfile.lock              | 4 ++--
 gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile.lock        | 4 ++--
 ...uby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.5.9_rails61_mysql2.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.5.9_rails61_postgres.gemfile.lock             | 4 ++--
 gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock     | 4 ++--
 gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.5.9_rails6_mysql2.gemfile.lock                | 4 ++--
 gemfiles/ruby_2.5.9_rails6_postgres.gemfile.lock              | 4 ++--
 gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile.lock        | 4 ++--
 ...uby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.5.9_resque2_redis3.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.5.9_resque2_redis4.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.6.7_contrib.gemfile.lock                      | 4 ++--
 gemfiles/ruby_2.6.7_contrib_old.gemfile.lock                  | 4 ++--
 gemfiles/ruby_2.6.7_core_old.gemfile.lock                     | 4 ++--
 gemfiles/ruby_2.6.7_cucumber3.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.6.7_cucumber4.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.6.7_cucumber5.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock                | 4 ++--
 gemfiles/ruby_2.6.7_rails5_postgres.gemfile.lock              | 4 ++--
 gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile.lock        | 4 ++--
 ...uby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock             | 4 ++--
 gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock     | 4 ++--
 gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock                | 4 ++--
 gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock              | 4 ++--
 gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile.lock        | 4 ++--
 ...uby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.7.3_contrib.gemfile.lock                      | 4 ++--
 gemfiles/ruby_2.7.3_contrib_old.gemfile.lock                  | 4 ++--
 gemfiles/ruby_2.7.3_core_old.gemfile.lock                     | 4 ++--
 gemfiles/ruby_2.7.3_cucumber3.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.7.3_cucumber4.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.7.3_cucumber5.gemfile.lock                    | 4 ++--
 gemfiles/ruby_2.7.3_rails5_mysql2.gemfile.lock                | 4 ++--
 gemfiles/ruby_2.7.3_rails5_postgres.gemfile.lock              | 4 ++--
 gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile.lock        | 4 ++--
 ...uby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.7.3_rails61_mysql2.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.7.3_rails61_postgres.gemfile.lock             | 4 ++--
 gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock     | 4 ++--
 gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.7.3_rails6_mysql2.gemfile.lock                | 4 ++--
 gemfiles/ruby_2.7.3_rails6_postgres.gemfile.lock              | 4 ++--
 gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile.lock        | 4 ++--
 ...uby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock | 4 ++--
 gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock      | 4 ++--
 gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock       | 4 ++--
 gemfiles/ruby_2.7.3_resque2_redis3.gemfile.lock               | 4 ++--
 gemfiles/ruby_2.7.3_resque2_redis4.gemfile.lock               | 4 ++--
 gemfiles/ruby_3.0.3_contrib.gemfile.lock                      | 4 ++--
 gemfiles/ruby_3.0.3_contrib_old.gemfile.lock                  | 4 ++--
 gemfiles/ruby_3.0.3_core_old.gemfile.lock                     | 4 ++--
 gemfiles/ruby_3.0.3_cucumber3.gemfile.lock                    | 4 ++--
 gemfiles/ruby_3.0.3_cucumber4.gemfile.lock                    | 4 ++--
 gemfiles/ruby_3.0.3_cucumber5.gemfile.lock                    | 4 ++--
 gemfiles/ruby_3.0.3_rails61_mysql2.gemfile.lock               | 4 ++--
 gemfiles/ruby_3.0.3_rails61_postgres.gemfile.lock             | 4 ++--
 gemfiles/ruby_3.0.3_rails61_postgres_redis.gemfile.lock       | 4 ++--
 gemfiles/ruby_3.0.3_rails61_postgres_sidekiq.gemfile.lock     | 4 ++--
 gemfiles/ruby_3.0.3_rails61_semantic_logger.gemfile.lock      | 4 ++--
 gemfiles/ruby_3.0.3_resque2_redis3.gemfile.lock               | 4 ++--
 gemfiles/ruby_3.0.3_resque2_redis4.gemfile.lock               | 4 ++--
 gemfiles/ruby_3.1.1_contrib.gemfile.lock                      | 4 ++--
 gemfiles/ruby_3.1.1_contrib_old.gemfile.lock                  | 4 ++--
 gemfiles/ruby_3.1.1_core_old.gemfile.lock                     | 4 ++--
 gemfiles/ruby_3.1.1_cucumber3.gemfile.lock                    | 4 ++--
 gemfiles/ruby_3.1.1_cucumber4.gemfile.lock                    | 4 ++--
 gemfiles/ruby_3.1.1_cucumber5.gemfile.lock                    | 4 ++--
 gemfiles/ruby_3.1.1_rails61_mysql2.gemfile.lock               | 4 ++--
 gemfiles/ruby_3.1.1_rails61_postgres.gemfile.lock             | 4 ++--
 gemfiles/ruby_3.1.1_rails61_postgres_redis.gemfile.lock       | 4 ++--
 gemfiles/ruby_3.1.1_rails61_postgres_sidekiq.gemfile.lock     | 4 ++--
 gemfiles/ruby_3.1.1_rails61_semantic_logger.gemfile.lock      | 4 ++--
 gemfiles/ruby_3.1.1_resque2_redis3.gemfile.lock               | 4 ++--
 gemfiles/ruby_3.1.1_resque2_redis4.gemfile.lock               | 4 ++--
 gemfiles/ruby_3.2.0_contrib.gemfile.lock                      | 4 ++--
 gemfiles/ruby_3.2.0_contrib_old.gemfile.lock                  | 4 ++--
 gemfiles/ruby_3.2.0_core_old.gemfile.lock                     | 4 ++--
 gemfiles/ruby_3.2.0_cucumber3.gemfile.lock                    | 4 ++--
 gemfiles/ruby_3.2.0_cucumber4.gemfile.lock                    | 4 ++--
 gemfiles/ruby_3.2.0_cucumber5.gemfile.lock                    | 4 ++--
 gemfiles/ruby_3.2.0_rails61_mysql2.gemfile.lock               | 4 ++--
 gemfiles/ruby_3.2.0_rails61_postgres.gemfile.lock             | 4 ++--
 gemfiles/ruby_3.2.0_rails61_postgres_redis.gemfile.lock       | 4 ++--
 gemfiles/ruby_3.2.0_rails61_postgres_sidekiq.gemfile.lock     | 4 ++--
 gemfiles/ruby_3.2.0_rails61_semantic_logger.gemfile.lock      | 4 ++--
 gemfiles/ruby_3.2.0_resque2_redis3.gemfile.lock               | 4 ++--
 gemfiles/ruby_3.2.0_resque2_redis4.gemfile.lock               | 4 ++--
 251 files changed, 502 insertions(+), 502 deletions(-)

diff --git a/gemfiles/jruby_9.2.18.0_contrib.gemfile.lock b/gemfiles/jruby_9.2.18.0_contrib.gemfile.lock
index e69ad6de509..985565784b2 100644
--- a/gemfiles/jruby_9.2.18.0_contrib.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_contrib.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -1439,7 +1439,7 @@ GEM
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_contrib_old.gemfile.lock b/gemfiles/jruby_9.2.18.0_contrib_old.gemfile.lock
index 8affdc6a2ae..9917914093c 100644
--- a/gemfiles/jruby_9.2.18.0_contrib_old.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_contrib_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -60,7 +60,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.18.0_core_old.gemfile.lock b/gemfiles/jruby_9.2.18.0_core_old.gemfile.lock
index 1682076acd0..2e02afbc2bd 100644
--- a/gemfiles/jruby_9.2.18.0_core_old.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_core_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.18.0_cucumber3.gemfile.lock b/gemfiles/jruby_9.2.18.0_cucumber3.gemfile.lock
index 93ff51c050b..06895c601e9 100644
--- a/gemfiles/jruby_9.2.18.0_cucumber3.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_cucumber3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -64,7 +64,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.18.0_cucumber4.gemfile.lock b/gemfiles/jruby_9.2.18.0_cucumber4.gemfile.lock
index 769884d55f7..557a60004d2 100644
--- a/gemfiles/jruby_9.2.18.0_cucumber4.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_cucumber4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -85,7 +85,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.18.0_cucumber5.gemfile.lock b/gemfiles/jruby_9.2.18.0_cucumber5.gemfile.lock
index 59ed047ba9b..325f0069345 100644
--- a/gemfiles/jruby_9.2.18.0_cucumber5.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_cucumber5.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -85,7 +85,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile.lock
index 14393712a19..9029e33ebf8 100644
--- a/gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile.lock
index f023206f533..286bd7bf85e 100644
--- a/gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock
index 4e00463889f..691a4f39c38 100644
--- a/gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock
index 6daca2d0718..b975442eec7 100644
--- a/gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock
index 6857233b419..216ee484874 100644
--- a/gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -101,7 +101,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock
index 594d7cf68b4..fe4e901b2ef 100644
--- a/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile.lock
index 5806bb3b8bc..3201bbb6fb3 100644
--- a/gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile.lock
index fe8736e5f5a..c62135ef9bc 100644
--- a/gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock
index b0525e1a167..33a3d516ea9 100644
--- a/gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock
index c7e5a6e6928..e7e3bf7cee7 100644
--- a/gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -118,7 +118,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock
index 2552da485e2..d6de39b07a7 100644
--- a/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile.lock
index 30a2dd8cf0e..139e4718960 100644
--- a/gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile.lock
index 1ee0d32b2b5..deb18ebeb34 100644
--- a/gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock
index 7f403c00c3d..f805805be1a 100644
--- a/gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock
index 37e589cd827..782049ace4c 100644
--- a/gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock
index 3a2147a8edb..b6089826ee3 100644
--- a/gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -114,7 +114,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock
index ded77a57911..3fb37f221f1 100644
--- a/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile.lock b/gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile.lock
index 6324cc619e1..9c53ce33dd2 100644
--- a/gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile.lock b/gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile.lock
index 8e340745c2d..2311d763454 100644
--- a/gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_contrib.gemfile.lock b/gemfiles/jruby_9.2.8.0_contrib.gemfile.lock
index 896e38705b1..06cd52338fb 100644
--- a/gemfiles/jruby_9.2.8.0_contrib.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_contrib.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -1439,7 +1439,7 @@ GEM
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_contrib_old.gemfile.lock b/gemfiles/jruby_9.2.8.0_contrib_old.gemfile.lock
index a70d2a6506c..06ef1903fa0 100644
--- a/gemfiles/jruby_9.2.8.0_contrib_old.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_contrib_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -60,7 +60,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_core_old.gemfile.lock b/gemfiles/jruby_9.2.8.0_core_old.gemfile.lock
index cc19cc03fc5..d10b4ec910b 100644
--- a/gemfiles/jruby_9.2.8.0_core_old.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_core_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_cucumber3.gemfile.lock b/gemfiles/jruby_9.2.8.0_cucumber3.gemfile.lock
index 3b3e94a14a8..c66364c1f37 100644
--- a/gemfiles/jruby_9.2.8.0_cucumber3.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_cucumber3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -64,7 +64,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_cucumber4.gemfile.lock b/gemfiles/jruby_9.2.8.0_cucumber4.gemfile.lock
index 8dec7034833..fd075b3a020 100644
--- a/gemfiles/jruby_9.2.8.0_cucumber4.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_cucumber4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -85,7 +85,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_cucumber5.gemfile.lock b/gemfiles/jruby_9.2.8.0_cucumber5.gemfile.lock
index 01019bc4a1b..98b089ced78 100644
--- a/gemfiles/jruby_9.2.8.0_cucumber5.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_cucumber5.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -85,7 +85,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_rails5_mysql2.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails5_mysql2.gemfile.lock
index 73f8865d768..5fcf89039b7 100644
--- a/gemfiles/jruby_9.2.8.0_rails5_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails5_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails5_postgres.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails5_postgres.gemfile.lock
index 70e38f37ade..8816ddeb5a5 100644
--- a/gemfiles/jruby_9.2.8.0_rails5_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails5_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails5_postgres_redis.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails5_postgres_redis.gemfile.lock
index c7eda65df9e..de329bf3d3d 100644
--- a/gemfiles/jruby_9.2.8.0_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails5_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails5_postgres_redis_activesupport.gemfile.lock
index c06bf66cb5a..21bd543eadd 100644
--- a/gemfiles/jruby_9.2.8.0_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails5_postgres_redis_activesupport.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails5_postgres_sidekiq.gemfile.lock
index cab8067f417..235ff9e153d 100644
--- a/gemfiles/jruby_9.2.8.0_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails5_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -101,7 +101,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails5_semantic_logger.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails5_semantic_logger.gemfile.lock
index b2e3fa7fc72..422ac7d6e2f 100644
--- a/gemfiles/jruby_9.2.8.0_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails5_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.2.8.0_rails61_mysql2.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails61_mysql2.gemfile.lock
index d492ace8768..67c6df0052d 100644
--- a/gemfiles/jruby_9.2.8.0_rails61_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails61_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails61_postgres.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails61_postgres.gemfile.lock
index 25dc1b9c04e..c2e4ac433d9 100644
--- a/gemfiles/jruby_9.2.8.0_rails61_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails61_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails61_postgres_redis.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails61_postgres_redis.gemfile.lock
index abb2cc4f0db..8747f1d4ee6 100644
--- a/gemfiles/jruby_9.2.8.0_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails61_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails61_postgres_sidekiq.gemfile.lock
index 069dbbe06da..6e568c5c792 100644
--- a/gemfiles/jruby_9.2.8.0_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails61_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -118,7 +118,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails61_semantic_logger.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails61_semantic_logger.gemfile.lock
index b452b06f56e..dbfcdff2c9f 100644
--- a/gemfiles/jruby_9.2.8.0_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails61_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.2.8.0_rails6_mysql2.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails6_mysql2.gemfile.lock
index 7675af8deb2..a5065ddb075 100644
--- a/gemfiles/jruby_9.2.8.0_rails6_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails6_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails6_postgres.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails6_postgres.gemfile.lock
index c448983e739..86a4ef3189e 100644
--- a/gemfiles/jruby_9.2.8.0_rails6_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails6_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails6_postgres_redis.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails6_postgres_redis.gemfile.lock
index 286cd999f8e..891820fc793 100644
--- a/gemfiles/jruby_9.2.8.0_rails6_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails6_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails6_postgres_redis_activesupport.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails6_postgres_redis_activesupport.gemfile.lock
index 2c23e4089a7..c6639e4908c 100644
--- a/gemfiles/jruby_9.2.8.0_rails6_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails6_postgres_redis_activesupport.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails6_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails6_postgres_sidekiq.gemfile.lock
index 2f9b56f48f3..4d653a9b05b 100644
--- a/gemfiles/jruby_9.2.8.0_rails6_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails6_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -114,7 +114,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails6_semantic_logger.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails6_semantic_logger.gemfile.lock
index 80bd325c281..80106ba6e89 100644
--- a/gemfiles/jruby_9.2.8.0_rails6_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails6_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.2.8.0_resque2_redis3.gemfile.lock b/gemfiles/jruby_9.2.8.0_resque2_redis3.gemfile.lock
index 5fe16cd8c35..ac7cd5fdd27 100644
--- a/gemfiles/jruby_9.2.8.0_resque2_redis3.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_resque2_redis3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_resque2_redis4.gemfile.lock b/gemfiles/jruby_9.2.8.0_resque2_redis4.gemfile.lock
index 455fdbe6c13..2fe69bd9415 100644
--- a/gemfiles/jruby_9.2.8.0_resque2_redis4.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_resque2_redis4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.3.4.0_contrib.gemfile.lock b/gemfiles/jruby_9.3.4.0_contrib.gemfile.lock
index 08242c9f886..ff34817e748 100644
--- a/gemfiles/jruby_9.3.4.0_contrib.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_contrib.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -1439,7 +1439,7 @@ GEM
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_contrib_old.gemfile.lock b/gemfiles/jruby_9.3.4.0_contrib_old.gemfile.lock
index 28333625974..c96a9b836d7 100644
--- a/gemfiles/jruby_9.3.4.0_contrib_old.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_contrib_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -60,7 +60,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.3.4.0_core_old.gemfile.lock b/gemfiles/jruby_9.3.4.0_core_old.gemfile.lock
index 2a549140d86..fd0d84f1d65 100644
--- a/gemfiles/jruby_9.3.4.0_core_old.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_core_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.3.4.0_cucumber3.gemfile.lock b/gemfiles/jruby_9.3.4.0_cucumber3.gemfile.lock
index eb49f2df490..e83d65b4d59 100644
--- a/gemfiles/jruby_9.3.4.0_cucumber3.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_cucumber3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -64,7 +64,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.3.4.0_cucumber4.gemfile.lock b/gemfiles/jruby_9.3.4.0_cucumber4.gemfile.lock
index 1369f3ab27b..230272eb356 100644
--- a/gemfiles/jruby_9.3.4.0_cucumber4.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_cucumber4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -85,7 +85,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.3.4.0_cucumber5.gemfile.lock b/gemfiles/jruby_9.3.4.0_cucumber5.gemfile.lock
index 14b5e713353..9da810cbda4 100644
--- a/gemfiles/jruby_9.3.4.0_cucumber5.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_cucumber5.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -85,7 +85,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.3.4.0_rails5_mysql2.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails5_mysql2.gemfile.lock
index 43f7a0e8f6f..eda49c3016b 100644
--- a/gemfiles/jruby_9.3.4.0_rails5_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails5_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails5_postgres.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails5_postgres.gemfile.lock
index 92f79effa6a..969d1ec89ea 100644
--- a/gemfiles/jruby_9.3.4.0_rails5_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails5_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails5_postgres_redis.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails5_postgres_redis.gemfile.lock
index d48f43f1ab2..b9548552078 100644
--- a/gemfiles/jruby_9.3.4.0_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails5_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails5_postgres_redis_activesupport.gemfile.lock
index a94266e6da9..089649e6e29 100644
--- a/gemfiles/jruby_9.3.4.0_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails5_postgres_redis_activesupport.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails5_postgres_sidekiq.gemfile.lock
index 45249ae69f3..e65855d77e8 100644
--- a/gemfiles/jruby_9.3.4.0_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails5_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -101,7 +101,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails5_semantic_logger.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails5_semantic_logger.gemfile.lock
index 152bdc8badf..b07b87ddb3e 100644
--- a/gemfiles/jruby_9.3.4.0_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails5_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.3.4.0_rails61_mysql2.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails61_mysql2.gemfile.lock
index ec06a84641e..cdee6c4666a 100644
--- a/gemfiles/jruby_9.3.4.0_rails61_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails61_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails61_postgres.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails61_postgres.gemfile.lock
index d51c09d31ad..12f47f62aec 100644
--- a/gemfiles/jruby_9.3.4.0_rails61_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails61_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails61_postgres_redis.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails61_postgres_redis.gemfile.lock
index fd659cf18ca..0ad0d45c773 100644
--- a/gemfiles/jruby_9.3.4.0_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails61_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails61_postgres_sidekiq.gemfile.lock
index 26f23fc1497..b5216dab82a 100644
--- a/gemfiles/jruby_9.3.4.0_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails61_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -118,7 +118,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails61_semantic_logger.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails61_semantic_logger.gemfile.lock
index aa4095cd1e7..52cbc105c26 100644
--- a/gemfiles/jruby_9.3.4.0_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails61_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.3.4.0_rails6_mysql2.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails6_mysql2.gemfile.lock
index 3394d020813..f60da8f95a0 100644
--- a/gemfiles/jruby_9.3.4.0_rails6_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails6_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails6_postgres.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails6_postgres.gemfile.lock
index d33b6b56bcd..e1c36a2e431 100644
--- a/gemfiles/jruby_9.3.4.0_rails6_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails6_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails6_postgres_redis.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails6_postgres_redis.gemfile.lock
index ba26fd547a0..b6c220abfc0 100644
--- a/gemfiles/jruby_9.3.4.0_rails6_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails6_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails6_postgres_redis_activesupport.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails6_postgres_redis_activesupport.gemfile.lock
index e08a1d72aed..4502b08da77 100644
--- a/gemfiles/jruby_9.3.4.0_rails6_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails6_postgres_redis_activesupport.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails6_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails6_postgres_sidekiq.gemfile.lock
index 268131d1cd8..7abcf69ba2d 100644
--- a/gemfiles/jruby_9.3.4.0_rails6_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails6_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -114,7 +114,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.3.4.0_rails6_semantic_logger.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails6_semantic_logger.gemfile.lock
index bbb15bf7d58..525eb5239cd 100644
--- a/gemfiles/jruby_9.3.4.0_rails6_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails6_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.3.4.0_resque2_redis3.gemfile.lock b/gemfiles/jruby_9.3.4.0_resque2_redis3.gemfile.lock
index a7fedc0f645..608c1d1e5ff 100644
--- a/gemfiles/jruby_9.3.4.0_resque2_redis3.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_resque2_redis3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.3.4.0_resque2_redis4.gemfile.lock b/gemfiles/jruby_9.3.4.0_resque2_redis4.gemfile.lock
index 4b34dba693d..300f38774c8 100644
--- a/gemfiles/jruby_9.3.4.0_resque2_redis4.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_resque2_redis4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.3.0.2.0)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.1.10_contrib.gemfile.lock b/gemfiles/ruby_2.1.10_contrib.gemfile.lock
index 7dd7108764c..0890d4b1632 100644
--- a/gemfiles/ruby_2.1.10_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_contrib.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -127,7 +127,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     makara (0.4.1)
       activerecord (>= 3.0.0)
diff --git a/gemfiles/ruby_2.1.10_core_old.gemfile.lock b/gemfiles/ruby_2.1.10_core_old.gemfile.lock
index 0b1a3c1c2a0..14c3a329964 100644
--- a/gemfiles/ruby_2.1.10_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_core_old.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -38,7 +38,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.12)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock b/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock
index a0da8f75bde..7925e249703 100644
--- a/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -75,7 +75,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock b/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock
index 2aaafd47e85..72d51c05894 100644
--- a/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -71,7 +71,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock b/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock
index 882582f60be..ca2e3887400 100644
--- a/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -71,7 +71,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock
index eddb6a7a128..3e445a8988f 100644
--- a/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -72,7 +72,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock b/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock
index 27400d21372..3be23298ddc 100644
--- a/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -79,7 +79,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock b/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock
index ba01d652e7c..54fd3235a2c 100644
--- a/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -79,7 +79,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock b/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock
index bcb2f3c7664..bcbc5dafe2b 100644
--- a/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -79,7 +79,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock b/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock
index 60c2497442c..01e4bf26d75 100644
--- a/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -79,7 +79,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.2.10_contrib.gemfile.lock b/gemfiles/ruby_2.2.10_contrib.gemfile.lock
index bf53a98d1bf..29f27d5b6ab 100644
--- a/gemfiles/ruby_2.2.10_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_contrib.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -1269,7 +1269,7 @@ GEM
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_core_old.gemfile.lock b/gemfiles/ruby_2.2.10_core_old.gemfile.lock
index 78dd11d02ec..7a5cca1a620 100644
--- a/gemfiles/ruby_2.2.10_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_core_old.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -38,7 +38,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.12)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock b/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock
index db91c289bf1..ee4fe014d7e 100644
--- a/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -75,7 +75,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock b/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock
index 7bed43aaa43..c18a8cbd18b 100644
--- a/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -71,7 +71,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock b/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock
index c30a0cf007f..02110b650cd 100644
--- a/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -71,7 +71,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock
index 346aa88dd44..a4b452afc99 100644
--- a/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -72,7 +72,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock b/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock
index 75f6d2b5cfe..415b54c7f99 100644
--- a/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -79,7 +79,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock b/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock
index a9445b23092..058c8434c62 100644
--- a/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -79,7 +79,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock b/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock
index 09dcf2574f5..52d8a18f325 100644
--- a/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -79,7 +79,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock
index 7d9fb4673b8..db766c9b088 100644
--- a/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -80,7 +80,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock b/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock
index bb3e90db03a..0916c7bdf1f 100644
--- a/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -79,7 +79,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock b/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock
index 4046d24595f..bd9c827958c 100644
--- a/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -86,7 +86,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock b/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock
index bca5f4d7acf..d2a7e5137d2 100644
--- a/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -86,7 +86,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock b/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock
index 7f4d14e8a2d..d74a6831666 100644
--- a/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -86,7 +86,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock
index fa3e45f3ed6..57877ba3f4f 100644
--- a/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -86,7 +86,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock
index 84517defe74..129865cfe21 100644
--- a/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -87,7 +87,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock b/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock
index f0fad987999..38e97394b39 100644
--- a/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -86,7 +86,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.3.8_contrib.gemfile.lock b/gemfiles/ruby_2.3.8_contrib.gemfile.lock
index 6a1a2538d78..d7e82144ddd 100644
--- a/gemfiles/ruby_2.3.8_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_contrib.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -1365,7 +1365,7 @@ GEM
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock b/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock
index e229a6a89f1..0155e3ed159 100644
--- a/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -50,7 +50,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.3.8_core_old.gemfile.lock b/gemfiles/ruby_2.3.8_core_old.gemfile.lock
index 46b23af9dd9..778194ac0d5 100644
--- a/gemfiles/ruby_2.3.8_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_core_old.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -38,7 +38,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock b/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock
index 1bfeae977ad..db68637d1a2 100644
--- a/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -56,7 +56,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock b/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock
index 4618911021c..94d7ce9ee3f 100644
--- a/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -76,7 +76,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock b/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock
index 6cf668bc169..4121ccf6eeb 100644
--- a/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -75,7 +75,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock b/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock
index 7615cbae509..c579c5b1ac6 100644
--- a/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -71,7 +71,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock b/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock
index 9e07bbbd288..fd1aa46c192 100644
--- a/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -71,7 +71,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock
index a350d81cc30..db5dbfff3e2 100644
--- a/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -72,7 +72,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock b/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock
index 6014bb3e20b..b70db18ba0b 100644
--- a/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -79,7 +79,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock b/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock
index f4ea8f240ca..c5a68352e29 100644
--- a/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -79,7 +79,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock b/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock
index 27f990ddeb4..5265e2a7785 100644
--- a/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -79,7 +79,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock
index 2b01e351fe6..19fff08f359 100644
--- a/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -80,7 +80,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock b/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock
index 58e6e7e1a6b..dce77ad4a21 100644
--- a/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -79,7 +79,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock b/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock
index 96d9041ae72..d5f607fa28b 100644
--- a/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -86,7 +86,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock b/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock
index 8f564f43cd8..1f52c9e4cbd 100644
--- a/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -86,7 +86,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock b/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock
index 5c90a810924..d504a4c7829 100644
--- a/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -86,7 +86,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock
index c6903ce6fd8..01644c8f431 100644
--- a/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -86,7 +86,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock
index 310b37f4ffa..dfa792b591e 100644
--- a/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -87,7 +87,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock b/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock
index 2e23b66d039..fbdb670d96a 100644
--- a/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -86,7 +86,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock b/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock
index 4f51bacf2ab..fff4657004d 100644
--- a/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -38,7 +38,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock b/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock
index ee2826b164c..57558392b00 100644
--- a/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -38,7 +38,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.4.10_contrib.gemfile.lock b/gemfiles/ruby_2.4.10_contrib.gemfile.lock
index c645f63f4d2..14a19cd3207 100644
--- a/gemfiles/ruby_2.4.10_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_contrib.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -1431,7 +1431,7 @@ GEM
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.4.10_contrib_old.gemfile.lock b/gemfiles/ruby_2.4.10_contrib_old.gemfile.lock
index b17229b9d12..a9917acb94c 100644
--- a/gemfiles/ruby_2.4.10_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_contrib_old.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -53,7 +53,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.4.10_core_old.gemfile.lock b/gemfiles/ruby_2.4.10_core_old.gemfile.lock
index dc2371ae718..c0d706fa5da 100644
--- a/gemfiles/ruby_2.4.10_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_core_old.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -40,7 +40,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.4.10_cucumber3.gemfile.lock b/gemfiles/ruby_2.4.10_cucumber3.gemfile.lock
index 744d3ec63a4..ee84e59d761 100644
--- a/gemfiles/ruby_2.4.10_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_cucumber3.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -58,7 +58,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.4.10_cucumber4.gemfile.lock b/gemfiles/ruby_2.4.10_cucumber4.gemfile.lock
index 32152a1e64a..87ef67a1f63 100644
--- a/gemfiles/ruby_2.4.10_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_cucumber4.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -78,7 +78,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.4.10_rails5_mysql2.gemfile.lock b/gemfiles/ruby_2.4.10_rails5_mysql2.gemfile.lock
index c1eb78db31c..4d836c7a48b 100644
--- a/gemfiles/ruby_2.4.10_rails5_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_rails5_mysql2.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -88,7 +88,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.4.10_rails5_postgres.gemfile.lock b/gemfiles/ruby_2.4.10_rails5_postgres.gemfile.lock
index 149e364c5d1..a794bfae40c 100644
--- a/gemfiles/ruby_2.4.10_rails5_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_rails5_postgres.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -88,7 +88,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile.lock b/gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile.lock
index e1f23ccda9a..1f68913e766 100644
--- a/gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -88,7 +88,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock
index aaf9a2788f2..61881b27922 100644
--- a/gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -88,7 +88,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock
index 06a4a4f5f71..656f3f789fc 100644
--- a/gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -89,7 +89,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock b/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock
index c0193701060..6d6e84c2e45 100644
--- a/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -88,7 +88,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.4.10_resque2_redis3.gemfile.lock b/gemfiles/ruby_2.4.10_resque2_redis3.gemfile.lock
index 2d2e9645234..38017b9eed3 100644
--- a/gemfiles/ruby_2.4.10_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_resque2_redis3.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -40,7 +40,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.4.10_resque2_redis4.gemfile.lock b/gemfiles/ruby_2.4.10_resque2_redis4.gemfile.lock
index 06cae103979..d4d0ba29db9 100644
--- a/gemfiles/ruby_2.4.10_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_resque2_redis4.gemfile.lock
@@ -4,7 +4,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -40,7 +40,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.5.9_contrib.gemfile.lock b/gemfiles/ruby_2.5.9_contrib.gemfile.lock
index fe59362cfd2..fb02737b8f5 100644
--- a/gemfiles/ruby_2.5.9_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_contrib.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -1437,7 +1437,7 @@ GEM
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_contrib_old.gemfile.lock b/gemfiles/ruby_2.5.9_contrib_old.gemfile.lock
index 688c28a6fcd..d0d92c244bf 100644
--- a/gemfiles/ruby_2.5.9_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_contrib_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -64,7 +64,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.5.9_core_old.gemfile.lock b/gemfiles/ruby_2.5.9_core_old.gemfile.lock
index 7f953ea322f..5d60f2b2144 100644
--- a/gemfiles/ruby_2.5.9_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_core_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -50,7 +50,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.5.9_cucumber3.gemfile.lock b/gemfiles/ruby_2.5.9_cucumber3.gemfile.lock
index ccb639bb0ca..64d2ad991e8 100644
--- a/gemfiles/ruby_2.5.9_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_cucumber3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -68,7 +68,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.5.9_cucumber4.gemfile.lock b/gemfiles/ruby_2.5.9_cucumber4.gemfile.lock
index 2b667d62d65..10a0d048d80 100644
--- a/gemfiles/ruby_2.5.9_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_cucumber4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -89,7 +89,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.5.9_cucumber5.gemfile.lock b/gemfiles/ruby_2.5.9_cucumber5.gemfile.lock
index aed60f8da47..785aced901f 100644
--- a/gemfiles/ruby_2.5.9_cucumber5.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_cucumber5.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -89,7 +89,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.5.9_rails5_mysql2.gemfile.lock b/gemfiles/ruby_2.5.9_rails5_mysql2.gemfile.lock
index 29b225c547d..c9c9a845fd9 100644
--- a/gemfiles/ruby_2.5.9_rails5_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails5_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -98,7 +98,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails5_postgres.gemfile.lock b/gemfiles/ruby_2.5.9_rails5_postgres.gemfile.lock
index 798fc46fc48..7105083969a 100644
--- a/gemfiles/ruby_2.5.9_rails5_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails5_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -98,7 +98,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile.lock b/gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile.lock
index 0cb4d3c14ad..4c0f7736a19 100644
--- a/gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -98,7 +98,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock
index 365c335cc64..805a8a322c0 100644
--- a/gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -98,7 +98,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock
index c42d85f8f11..448faf9dff8 100644
--- a/gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -99,7 +99,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock b/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock
index 7001b51525b..71db2c547ea 100644
--- a/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -98,7 +98,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.5.9_rails61_mysql2.gemfile.lock b/gemfiles/ruby_2.5.9_rails61_mysql2.gemfile.lock
index dd1956bfc5f..a26b563a4d4 100644
--- a/gemfiles/ruby_2.5.9_rails61_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails61_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -115,7 +115,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails61_postgres.gemfile.lock b/gemfiles/ruby_2.5.9_rails61_postgres.gemfile.lock
index 33c38ef75d9..af7bc199d49 100644
--- a/gemfiles/ruby_2.5.9_rails61_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails61_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -115,7 +115,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile.lock b/gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile.lock
index da37a0df5a5..f799d0308ad 100644
--- a/gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -115,7 +115,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock
index 4d224a39043..affcc4c59a9 100644
--- a/gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock b/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock
index f5369decb01..8b94575554a 100644
--- a/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -115,7 +115,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.5.9_rails6_mysql2.gemfile.lock b/gemfiles/ruby_2.5.9_rails6_mysql2.gemfile.lock
index 0fe7f943a32..7b0f888749b 100644
--- a/gemfiles/ruby_2.5.9_rails6_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails6_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -111,7 +111,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails6_postgres.gemfile.lock b/gemfiles/ruby_2.5.9_rails6_postgres.gemfile.lock
index b6d6471ac72..3618ef6a4a4 100644
--- a/gemfiles/ruby_2.5.9_rails6_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails6_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -111,7 +111,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile.lock b/gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile.lock
index a81b4ba4dec..21ed06d6ae3 100644
--- a/gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -111,7 +111,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock
index 753c3c01232..030ea3a52f8 100644
--- a/gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -111,7 +111,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock
index 6e5ba29ca71..abbdaf69fa9 100644
--- a/gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -112,7 +112,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock b/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock
index e5ba64ae107..06d47523c68 100644
--- a/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -111,7 +111,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.5.9_resque2_redis3.gemfile.lock b/gemfiles/ruby_2.5.9_resque2_redis3.gemfile.lock
index 3be036cd752..dc50ffeedcb 100644
--- a/gemfiles/ruby_2.5.9_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_resque2_redis3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -50,7 +50,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.5.9_resque2_redis4.gemfile.lock b/gemfiles/ruby_2.5.9_resque2_redis4.gemfile.lock
index 39cba731175..601ef4b5175 100644
--- a/gemfiles/ruby_2.5.9_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_resque2_redis4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -50,7 +50,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.6.7_contrib.gemfile.lock b/gemfiles/ruby_2.6.7_contrib.gemfile.lock
index 8fb4f9ce8ac..be2313b104c 100644
--- a/gemfiles/ruby_2.6.7_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_contrib.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -1438,7 +1438,7 @@ GEM
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_contrib_old.gemfile.lock b/gemfiles/ruby_2.6.7_contrib_old.gemfile.lock
index 4123cd3e0a4..05ce8e36ed9 100644
--- a/gemfiles/ruby_2.6.7_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_contrib_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -65,7 +65,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.6.7_core_old.gemfile.lock b/gemfiles/ruby_2.6.7_core_old.gemfile.lock
index 3c1b03fd7f1..6ffc8773a6e 100644
--- a/gemfiles/ruby_2.6.7_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_core_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -51,7 +51,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.6.7_cucumber3.gemfile.lock b/gemfiles/ruby_2.6.7_cucumber3.gemfile.lock
index 15ad4bfddd6..b8f42ce9f6a 100644
--- a/gemfiles/ruby_2.6.7_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_cucumber3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -69,7 +69,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.6.7_cucumber4.gemfile.lock b/gemfiles/ruby_2.6.7_cucumber4.gemfile.lock
index 6bfe21652c5..8308ff5fba7 100644
--- a/gemfiles/ruby_2.6.7_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_cucumber4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -90,7 +90,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.6.7_cucumber5.gemfile.lock b/gemfiles/ruby_2.6.7_cucumber5.gemfile.lock
index edce47cece6..b5698a89944 100644
--- a/gemfiles/ruby_2.6.7_cucumber5.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_cucumber5.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -90,7 +90,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock b/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock
index 46577c104d1..1dc8e0b2568 100644
--- a/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -99,7 +99,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails5_postgres.gemfile.lock b/gemfiles/ruby_2.6.7_rails5_postgres.gemfile.lock
index f0e49da77ef..952963d8dd9 100644
--- a/gemfiles/ruby_2.6.7_rails5_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails5_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -99,7 +99,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile.lock b/gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile.lock
index 0b37f776688..6d08b9ac029 100644
--- a/gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -99,7 +99,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock
index 480d89b71fe..c1333b07826 100644
--- a/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -99,7 +99,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock
index 8e74a3ee6e2..f407110fa69 100644
--- a/gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock b/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock
index cfee20ee26a..24a4f4c780e 100644
--- a/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -99,7 +99,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock b/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock
index 41472119481..c0ac4f95975 100644
--- a/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock b/gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock
index 3c61b51ff4c..ec9b95599e2 100644
--- a/gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock b/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock
index 1c1fe9630e4..47812bb5fab 100644
--- a/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock
index 2abf619a7f6..5a55829e104 100644
--- a/gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock b/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock
index 1e0c28806a2..ab5797239e5 100644
--- a/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock b/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock
index 90c6c33455d..960c6182613 100644
--- a/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -112,7 +112,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock b/gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock
index cd39cf27203..cb1e0ba6948 100644
--- a/gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -112,7 +112,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile.lock b/gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile.lock
index caf270026dc..e309e8ed239 100644
--- a/gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -112,7 +112,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock
index ba5830a1704..de9d071312e 100644
--- a/gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -112,7 +112,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock
index 54a058d39cf..bd79c823d01 100644
--- a/gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock b/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock
index bbc25bc9bf8..4a438791f71 100644
--- a/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -112,7 +112,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock b/gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock
index 1547046d78d..d8eff6b1fe5 100644
--- a/gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -51,7 +51,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock b/gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock
index bdbe64df0ea..bae97c9c101 100644
--- a/gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -51,7 +51,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_contrib.gemfile.lock b/gemfiles/ruby_2.7.3_contrib.gemfile.lock
index f7d6d63ba7c..976f10f7b55 100644
--- a/gemfiles/ruby_2.7.3_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_contrib.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -1437,7 +1437,7 @@ GEM
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_contrib_old.gemfile.lock b/gemfiles/ruby_2.7.3_contrib_old.gemfile.lock
index 387fb8f6ae0..59e11cc8537 100644
--- a/gemfiles/ruby_2.7.3_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_contrib_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -65,7 +65,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_core_old.gemfile.lock b/gemfiles/ruby_2.7.3_core_old.gemfile.lock
index cfff01feaa7..7b07e74bbdb 100644
--- a/gemfiles/ruby_2.7.3_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_core_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -51,7 +51,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_cucumber3.gemfile.lock b/gemfiles/ruby_2.7.3_cucumber3.gemfile.lock
index afeafc4028f..8c1c82f1719 100644
--- a/gemfiles/ruby_2.7.3_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_cucumber3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -69,7 +69,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_cucumber4.gemfile.lock b/gemfiles/ruby_2.7.3_cucumber4.gemfile.lock
index 9c29627ed01..3eb03d2bd7e 100644
--- a/gemfiles/ruby_2.7.3_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_cucumber4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -89,7 +89,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_cucumber5.gemfile.lock b/gemfiles/ruby_2.7.3_cucumber5.gemfile.lock
index feca73bbc98..dff2757f313 100644
--- a/gemfiles/ruby_2.7.3_cucumber5.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_cucumber5.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -89,7 +89,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_rails5_mysql2.gemfile.lock b/gemfiles/ruby_2.7.3_rails5_mysql2.gemfile.lock
index 53e2a20c890..76e0e13668a 100644
--- a/gemfiles/ruby_2.7.3_rails5_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails5_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -99,7 +99,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails5_postgres.gemfile.lock b/gemfiles/ruby_2.7.3_rails5_postgres.gemfile.lock
index b6185473cf0..f19eaf7bf4b 100644
--- a/gemfiles/ruby_2.7.3_rails5_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails5_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -99,7 +99,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile.lock b/gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile.lock
index bf9427d6190..b6eda2510d0 100644
--- a/gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -99,7 +99,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock
index ebb749b5d60..dd30e57b519 100644
--- a/gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -99,7 +99,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock
index 34b84c38a48..224df608934 100644
--- a/gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock b/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock
index 43c631e3ea8..e306b9d51f1 100644
--- a/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -99,7 +99,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.7.3_rails61_mysql2.gemfile.lock b/gemfiles/ruby_2.7.3_rails61_mysql2.gemfile.lock
index 5304f2d7624..e6c12c52f5a 100644
--- a/gemfiles/ruby_2.7.3_rails61_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails61_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails61_postgres.gemfile.lock b/gemfiles/ruby_2.7.3_rails61_postgres.gemfile.lock
index 45a5ca5b98d..676ee7a2cf0 100644
--- a/gemfiles/ruby_2.7.3_rails61_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails61_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile.lock b/gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile.lock
index 28c30a492f1..263e2c92be7 100644
--- a/gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock
index bf1169bec0b..b5e6c4f44d4 100644
--- a/gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock b/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock
index 584e75ee877..44fbf36dd50 100644
--- a/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.7.3_rails6_mysql2.gemfile.lock b/gemfiles/ruby_2.7.3_rails6_mysql2.gemfile.lock
index 123814f47ba..f81f560a856 100644
--- a/gemfiles/ruby_2.7.3_rails6_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails6_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -112,7 +112,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails6_postgres.gemfile.lock b/gemfiles/ruby_2.7.3_rails6_postgres.gemfile.lock
index 2c4286cb36a..8f7ac45333f 100644
--- a/gemfiles/ruby_2.7.3_rails6_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails6_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -112,7 +112,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile.lock b/gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile.lock
index b4096317ccb..80f8249ed80 100644
--- a/gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -112,7 +112,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock
index e7844a5283a..a5dfd73eb94 100644
--- a/gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -112,7 +112,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock
index 1cc77011cb9..34fa9de83ae 100644
--- a/gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock b/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock
index 99e6dfee474..783eb92a17e 100644
--- a/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -112,7 +112,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.7.3_resque2_redis3.gemfile.lock b/gemfiles/ruby_2.7.3_resque2_redis3.gemfile.lock
index c17b24558a4..8aa828d7643 100644
--- a/gemfiles/ruby_2.7.3_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_resque2_redis3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -51,7 +51,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_resque2_redis4.gemfile.lock b/gemfiles/ruby_2.7.3_resque2_redis4.gemfile.lock
index d6083a68b3f..8ccefeb1fba 100644
--- a/gemfiles/ruby_2.7.3_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_resque2_redis4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -51,7 +51,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.0.3_contrib.gemfile.lock b/gemfiles/ruby_3.0.3_contrib.gemfile.lock
index 7e8bf76f236..217256020c3 100644
--- a/gemfiles/ruby_3.0.3_contrib.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_contrib.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -1448,7 +1448,7 @@ GEM
       addressable (>= 2.4)
     jsonapi-renderer (0.2.2)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_3.0.3_contrib_old.gemfile.lock b/gemfiles/ruby_3.0.3_contrib_old.gemfile.lock
index 241ffeb644d..5915f43a57c 100644
--- a/gemfiles/ruby_3.0.3_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_contrib_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -66,7 +66,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.0.3_core_old.gemfile.lock b/gemfiles/ruby_3.0.3_core_old.gemfile.lock
index d9bc6d348f4..439efdff7f6 100644
--- a/gemfiles/ruby_3.0.3_core_old.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_core_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -52,7 +52,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.0.3_cucumber3.gemfile.lock b/gemfiles/ruby_3.0.3_cucumber3.gemfile.lock
index 00e2d9e8c04..962182f015a 100644
--- a/gemfiles/ruby_3.0.3_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_cucumber3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -70,7 +70,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.0.3_cucumber4.gemfile.lock b/gemfiles/ruby_3.0.3_cucumber4.gemfile.lock
index ee91b6a2ebe..a3501364264 100644
--- a/gemfiles/ruby_3.0.3_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_cucumber4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -90,7 +90,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.0.3_cucumber5.gemfile.lock b/gemfiles/ruby_3.0.3_cucumber5.gemfile.lock
index 5e8ff9d4378..d0b29cc8405 100644
--- a/gemfiles/ruby_3.0.3_cucumber5.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_cucumber5.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -90,7 +90,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.0.3_rails61_mysql2.gemfile.lock b/gemfiles/ruby_3.0.3_rails61_mysql2.gemfile.lock
index b6efb491a5d..9f229f2f751 100644
--- a/gemfiles/ruby_3.0.3_rails61_mysql2.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_rails61_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -119,7 +119,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_3.0.3_rails61_postgres.gemfile.lock b/gemfiles/ruby_3.0.3_rails61_postgres.gemfile.lock
index ecf849ae196..b7df0f102df 100644
--- a/gemfiles/ruby_3.0.3_rails61_postgres.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_rails61_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -119,7 +119,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_3.0.3_rails61_postgres_redis.gemfile.lock b/gemfiles/ruby_3.0.3_rails61_postgres_redis.gemfile.lock
index 38870b58296..3c1c812f36d 100644
--- a/gemfiles/ruby_3.0.3_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_rails61_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -119,7 +119,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_3.0.3_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_3.0.3_rails61_postgres_sidekiq.gemfile.lock
index 546b9ac5859..30aca29f921 100644
--- a/gemfiles/ruby_3.0.3_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_rails61_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -120,7 +120,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_3.0.3_rails61_semantic_logger.gemfile.lock b/gemfiles/ruby_3.0.3_rails61_semantic_logger.gemfile.lock
index 6a639c2aaa2..edc49c4223e 100644
--- a/gemfiles/ruby_3.0.3_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_rails61_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -119,7 +119,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_3.0.3_resque2_redis3.gemfile.lock b/gemfiles/ruby_3.0.3_resque2_redis3.gemfile.lock
index 0f03233ad9a..719954a2eaf 100644
--- a/gemfiles/ruby_3.0.3_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_resque2_redis3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -52,7 +52,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.0.3_resque2_redis4.gemfile.lock b/gemfiles/ruby_3.0.3_resque2_redis4.gemfile.lock
index 50c9ad23a77..110ea0fd868 100644
--- a/gemfiles/ruby_3.0.3_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_resque2_redis4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -52,7 +52,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.1.1_contrib.gemfile.lock b/gemfiles/ruby_3.1.1_contrib.gemfile.lock
index 30da6fe984a..4f3e358d703 100644
--- a/gemfiles/ruby_3.1.1_contrib.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_contrib.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -1444,7 +1444,7 @@ GEM
       addressable (>= 2.4)
     jsonapi-renderer (0.2.2)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_3.1.1_contrib_old.gemfile.lock b/gemfiles/ruby_3.1.1_contrib_old.gemfile.lock
index d118c2383fa..49a0addb60f 100644
--- a/gemfiles/ruby_3.1.1_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_contrib_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -65,7 +65,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.1.1_core_old.gemfile.lock b/gemfiles/ruby_3.1.1_core_old.gemfile.lock
index 97345b1c08e..5bef6ad0adb 100644
--- a/gemfiles/ruby_3.1.1_core_old.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_core_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -51,7 +51,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.1.1_cucumber3.gemfile.lock b/gemfiles/ruby_3.1.1_cucumber3.gemfile.lock
index ec11048f3e5..2e8e1f90e6b 100644
--- a/gemfiles/ruby_3.1.1_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_cucumber3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -69,7 +69,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.1.1_cucumber4.gemfile.lock b/gemfiles/ruby_3.1.1_cucumber4.gemfile.lock
index 07bc15ac796..9e5525f9c51 100644
--- a/gemfiles/ruby_3.1.1_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_cucumber4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -89,7 +89,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.1.1_cucumber5.gemfile.lock b/gemfiles/ruby_3.1.1_cucumber5.gemfile.lock
index 54a0e80af19..e66d32129e0 100644
--- a/gemfiles/ruby_3.1.1_cucumber5.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_cucumber5.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -89,7 +89,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.1.1_rails61_mysql2.gemfile.lock b/gemfiles/ruby_3.1.1_rails61_mysql2.gemfile.lock
index 5519c5fa16c..23c1b57453b 100644
--- a/gemfiles/ruby_3.1.1_rails61_mysql2.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_rails61_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -118,7 +118,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_3.1.1_rails61_postgres.gemfile.lock b/gemfiles/ruby_3.1.1_rails61_postgres.gemfile.lock
index 256ef0fde62..503ec4e6302 100644
--- a/gemfiles/ruby_3.1.1_rails61_postgres.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_rails61_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -118,7 +118,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_3.1.1_rails61_postgres_redis.gemfile.lock b/gemfiles/ruby_3.1.1_rails61_postgres_redis.gemfile.lock
index f299a705972..e6fc97da50f 100644
--- a/gemfiles/ruby_3.1.1_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_rails61_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -118,7 +118,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_3.1.1_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_3.1.1_rails61_postgres_sidekiq.gemfile.lock
index 56d9fe63133..6fe0845d28c 100644
--- a/gemfiles/ruby_3.1.1_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_rails61_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -119,7 +119,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_3.1.1_rails61_semantic_logger.gemfile.lock b/gemfiles/ruby_3.1.1_rails61_semantic_logger.gemfile.lock
index cda259204c3..931a79e30e1 100644
--- a/gemfiles/ruby_3.1.1_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_rails61_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -118,7 +118,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_3.1.1_resque2_redis3.gemfile.lock b/gemfiles/ruby_3.1.1_resque2_redis3.gemfile.lock
index 45cf51c4dfc..582c9b4efa7 100644
--- a/gemfiles/ruby_3.1.1_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_resque2_redis3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -51,7 +51,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.1.1_resque2_redis4.gemfile.lock b/gemfiles/ruby_3.1.1_resque2_redis4.gemfile.lock
index 920f24d4197..346fbeb5c7a 100644
--- a/gemfiles/ruby_3.1.1_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_resque2_redis4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -51,7 +51,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.2.0_contrib.gemfile.lock b/gemfiles/ruby_3.2.0_contrib.gemfile.lock
index a2b532d4ac7..c55ccd67f3d 100644
--- a/gemfiles/ruby_3.2.0_contrib.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_contrib.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -1446,7 +1446,7 @@ GEM
       addressable (>= 2.4)
     jsonapi-renderer (0.2.2)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.16.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_3.2.0_contrib_old.gemfile.lock b/gemfiles/ruby_3.2.0_contrib_old.gemfile.lock
index 9a60fcf0956..a748504ac67 100644
--- a/gemfiles/ruby_3.2.0_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_contrib_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -64,7 +64,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.2.0_core_old.gemfile.lock b/gemfiles/ruby_3.2.0_core_old.gemfile.lock
index 63f989376f8..f3d964186ab 100644
--- a/gemfiles/ruby_3.2.0_core_old.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_core_old.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -50,7 +50,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.2.0_cucumber3.gemfile.lock b/gemfiles/ruby_3.2.0_cucumber3.gemfile.lock
index f81c3570c5b..3737581f0f9 100644
--- a/gemfiles/ruby_3.2.0_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_cucumber3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -68,7 +68,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.2.0_cucumber4.gemfile.lock b/gemfiles/ruby_3.2.0_cucumber4.gemfile.lock
index 1dff342e877..d6e5a47ee71 100644
--- a/gemfiles/ruby_3.2.0_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_cucumber4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -88,7 +88,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.2.0_cucumber5.gemfile.lock b/gemfiles/ruby_3.2.0_cucumber5.gemfile.lock
index b7219782589..85f966caa22 100644
--- a/gemfiles/ruby_3.2.0_cucumber5.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_cucumber5.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -88,7 +88,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.2.0_rails61_mysql2.gemfile.lock b/gemfiles/ruby_3.2.0_rails61_mysql2.gemfile.lock
index a6322b6fc6e..b6857d46495 100644
--- a/gemfiles/ruby_3.2.0_rails61_mysql2.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_rails61_mysql2.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_3.2.0_rails61_postgres.gemfile.lock b/gemfiles/ruby_3.2.0_rails61_postgres.gemfile.lock
index 55ecf1fd869..7948e83b7ea 100644
--- a/gemfiles/ruby_3.2.0_rails61_postgres.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_rails61_postgres.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_3.2.0_rails61_postgres_redis.gemfile.lock b/gemfiles/ruby_3.2.0_rails61_postgres_redis.gemfile.lock
index fdb574b3d61..0cfc5fc9598 100644
--- a/gemfiles/ruby_3.2.0_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_rails61_postgres_redis.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_3.2.0_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_3.2.0_rails61_postgres_sidekiq.gemfile.lock
index 1ec18f4cb96..dc232375b07 100644
--- a/gemfiles/ruby_3.2.0_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_rails61_postgres_sidekiq.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_3.2.0_rails61_semantic_logger.gemfile.lock b/gemfiles/ruby_3.2.0_rails61_semantic_logger.gemfile.lock
index 35605801870..b4f0aa89bf1 100644
--- a/gemfiles/ruby_3.2.0_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_rails61_semantic_logger.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -116,7 +116,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.16.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_3.2.0_resque2_redis3.gemfile.lock b/gemfiles/ruby_3.2.0_resque2_redis3.gemfile.lock
index 5cee513ae67..b0d085f612c 100644
--- a/gemfiles/ruby_3.2.0_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_resque2_redis3.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -50,7 +50,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_3.2.0_resque2_redis4.gemfile.lock b/gemfiles/ruby_3.2.0_resque2_redis4.gemfile.lock
index 0e7b8cadd44..ab732ddedbc 100644
--- a/gemfiles/ruby_3.2.0_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_resque2_redis4.gemfile.lock
@@ -14,7 +14,7 @@ PATH
     ddtrace (1.5.0)
       debase-ruby_core_source (= 0.10.16)
       libdatadog (~> 0.7.0.1.1)
-      libddwaf (~> 1.3.0.2.0)
+      libddwaf (~> 1.5.1.0.0)
       msgpack
 
 GEM
@@ -50,7 +50,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.3.0.2.0-x86_64-linux)
+    libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)

From ba1ef94b25b30fb7c87f121160005ed1ba6774f7 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 20:57:50 +0200
Subject: [PATCH 04/27] Use source for grpc and google-protobuf on Ruby preview

While the presence of a ruby-platform gem for these should be picked up
by bundler, sometimes it is not. Also, this makes it a bit more
future-proof, so that bundler doesn't attempt to pick a version that has
no ruby platform gem, and then proceed to fail.
---
 Gemfile | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/Gemfile b/Gemfile
index 8874cbac957..c314c22fc86 100644
--- a/Gemfile
+++ b/Gemfile
@@ -76,7 +76,11 @@ gem 'opentracing', '>= 0.4.1'
 #       Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add
 #       to our CI, so we just shortcut and exclude specific versions that were affecting our CI.
 if RUBY_PLATFORM != 'java'
-  if RUBY_VERSION >= '2.5.0' # Bundler 1.x fails to recognize that version >= 3.19.2 is not compatible with older rubies
+  if RUBY_DESCRIPTION =~ /^ruby \d+\.\d+\.\d+preview/
+    # binary gems for these have a max ruby version requirement that excludes preview versions
+    gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'], platforms: ['ruby']
+    gem 'grpc', platforms: ['ruby']
+  elsif RUBY_VERSION >= '2.5.0' # Bundler 1.x fails to recognize that version >= 3.19.2 is not compatible with older rubies
     gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1']
   else
     gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2']

From a7c03b5d3d517c14afe79d5e3a48d29653b13ab1 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 21:00:27 +0200
Subject: [PATCH 05/27] Use source for nokogiri on 3.2 in appraisal

While the presence of a ruby-platform gem for these should be picked up
by bundler, sometimes it is not. Also, this makes it a bit more
future-proof, so that bundler doesn't attempt to pick a version that has
no ruby platform gem, and then proceed to fail.
---
 Appraisals | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Appraisals b/Appraisals
index d5ea534c2fc..ae13666d799 100644
--- a/Appraisals
+++ b/Appraisals
@@ -1514,6 +1514,7 @@ elsif ruby_version?('3.2')
     gem 'typhoeus'
     gem 'que', '>= 1.0.0'
     gem 'net-smtp'
+    gem 'nokogiri', platform: :ruby # binary gem has max ruby version constraint excluding previews
   end
 
   appraise 'contrib-old' do

From 80220fce885a38569762d334b159662267948848 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 21:01:34 +0200
Subject: [PATCH 06/27] Add rack-contrib to contrib appraisals

Some AppSec spec examples have to be tested against rack-contrib
---
 Appraisals | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/Appraisals b/Appraisals
index ae13666d799..c53f314cde8 100644
--- a/Appraisals
+++ b/Appraisals
@@ -110,6 +110,7 @@ if ruby_version?('2.1')
     gem 'mysql2', '0.3.21'
     gem 'pg', '>= 0.18.4', '< 1.0'
     gem 'rack', '1.4.7'
+    gem 'rack-contrib'
     gem 'rack-cache', '1.7.1'
     gem 'rack-test', '0.7.0'
     gem 'rake', '< 12.3'
@@ -288,6 +289,7 @@ elsif ruby_version?('2.2')
     gem 'qless'
     gem 'racecar', '>= 0.3.5'
     gem 'rack', '< 2.1.0' # Locked due to grape incompatibility: https://github.com/ruby-grape/grape/issues/1980
+    gem 'rack-contrib'
     gem 'rack-test'
     gem 'rake', '>= 12.3'
     gem 'redis', '< 4.0'
@@ -472,6 +474,7 @@ elsif ruby_version?('2.3')
     gem 'qless'
     gem 'racecar', '>= 0.3.5'
     gem 'rack', '< 2.1.0' # Locked due to grape incompatibility: https://github.com/ruby-grape/grape/issues/1980
+    gem 'rack-contrib'
     gem 'rack-test'
     gem 'rake', '>= 12.3'
     gem 'redis', '< 4.0'
@@ -590,6 +593,7 @@ elsif ruby_version?('2.4')
     gem 'qless'
     gem 'racecar', '>= 0.3.5'
     gem 'rack'
+    gem 'rack-contrib'
     gem 'rack-test'
     gem 'rake', '>= 12.3'
     gem 'redis', '< 4.0'
@@ -838,6 +842,7 @@ elsif ruby_version?('2.5')
     gem 'qless', (RUBY_PLATFORM == 'java' ? '0.10.0' : '>= 0') # Newer releases require `rusage`, which is not available for JRuby
     gem 'racecar', '>= 0.3.5'
     gem 'rack'
+    gem 'rack-contrib'
     gem 'rack-test'
     gem 'rake', '>= 12.3'
     gem 'redis', '< 4.0'
@@ -1062,6 +1067,7 @@ elsif ruby_version?('2.6')
       gem 'qless', (RUBY_PLATFORM == 'java' ? '0.10.0' : '>= 0') # Newer releases require `rusage`, which is not available for JRuby
       gem 'racecar', '>= 0.3.5'
       gem 'rack'
+      gem 'rack-contrib'
       gem 'rack-test'
       gem 'rake', '>= 12.3'
       gem 'redis', '< 4.0'
@@ -1266,6 +1272,7 @@ elsif ruby_version?('2.7')
       gem 'qless'
       gem 'racecar', '>= 0.3.5'
       gem 'rack'
+      gem 'rack-contrib'
       gem 'rack-test'
       gem 'rake', '>= 12.3'
       gem 'redis', '< 4.0'
@@ -1381,6 +1388,7 @@ elsif ruby_version?('3.0') || ruby_version?('3.1')
     gem 'qless'
     # gem 'racecar', '>= 0.3.5' # Pending release of our fix: https://github.com/appsignal/rdkafka-ruby/pull/144
     gem 'rack'
+    gem 'rack-contrib'
     gem 'rack-test'
     gem 'rake', '>= 12.3'
     gem 'redis', '< 4.0'
@@ -1496,6 +1504,7 @@ elsif ruby_version?('3.2')
     gem 'qless'
     # gem 'racecar', '>= 0.3.5' # Pending release of our fix: https://github.com/appsignal/rdkafka-ruby/pull/144
     gem 'rack'
+    gem 'rack-contrib'
     gem 'rack-test'
     gem 'rake', '>= 12.3'
     gem 'redis', '< 4.0'

From 2b67d3013cde0395853167327e6c242dfcdbaaab Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 21:02:46 +0200
Subject: [PATCH 07/27] Update appraisal locks

---
 gemfiles/jruby_9.2.18.0_contrib.gemfile.lock  |  7 +++++--
 .../jruby_9.2.18.0_contrib_old.gemfile.lock   |  4 ++--
 gemfiles/jruby_9.2.18.0_core_old.gemfile.lock |  4 ++--
 .../jruby_9.2.18.0_cucumber3.gemfile.lock     |  4 ++--
 .../jruby_9.2.18.0_cucumber4.gemfile.lock     |  4 ++--
 .../jruby_9.2.18.0_cucumber5.gemfile.lock     |  4 ++--
 .../jruby_9.2.18.0_rails5_mysql2.gemfile.lock |  4 ++--
 ...ruby_9.2.18.0_rails5_postgres.gemfile.lock |  4 ++--
 ....2.18.0_rails5_postgres_redis.gemfile.lock |  4 ++--
 ..._postgres_redis_activesupport.gemfile.lock |  4 ++--
 ....18.0_rails5_postgres_sidekiq.gemfile.lock |  4 ++--
 ...2.18.0_rails5_semantic_logger.gemfile.lock |  4 ++--
 ...jruby_9.2.18.0_rails61_mysql2.gemfile.lock |  4 ++--
 ...uby_9.2.18.0_rails61_postgres.gemfile.lock |  4 ++--
 ...2.18.0_rails61_postgres_redis.gemfile.lock |  4 ++--
 ...18.0_rails61_postgres_sidekiq.gemfile.lock |  4 ++--
 ....18.0_rails61_semantic_logger.gemfile.lock |  4 ++--
 .../jruby_9.2.18.0_rails6_mysql2.gemfile.lock |  4 ++--
 ...ruby_9.2.18.0_rails6_postgres.gemfile.lock |  4 ++--
 ....2.18.0_rails6_postgres_redis.gemfile.lock |  4 ++--
 ..._postgres_redis_activesupport.gemfile.lock |  4 ++--
 ....18.0_rails6_postgres_sidekiq.gemfile.lock |  4 ++--
 ...2.18.0_rails6_semantic_logger.gemfile.lock |  4 ++--
 ...jruby_9.2.18.0_resque2_redis3.gemfile.lock |  4 ++--
 ...jruby_9.2.18.0_resque2_redis4.gemfile.lock |  4 ++--
 gemfiles/jruby_9.2.8.0_contrib.gemfile.lock   |  7 +++++--
 .../jruby_9.2.8.0_contrib_old.gemfile.lock    |  4 ++--
 gemfiles/jruby_9.2.8.0_core_old.gemfile.lock  |  4 ++--
 gemfiles/jruby_9.2.8.0_cucumber3.gemfile.lock |  4 ++--
 gemfiles/jruby_9.2.8.0_cucumber4.gemfile.lock |  4 ++--
 gemfiles/jruby_9.2.8.0_cucumber5.gemfile.lock |  4 ++--
 .../jruby_9.2.8.0_rails5_mysql2.gemfile.lock  |  4 ++--
 ...jruby_9.2.8.0_rails5_postgres.gemfile.lock |  4 ++--
 ...9.2.8.0_rails5_postgres_redis.gemfile.lock |  4 ++--
 ..._postgres_redis_activesupport.gemfile.lock |  4 ++--
 ...2.8.0_rails5_postgres_sidekiq.gemfile.lock |  4 ++--
 ....2.8.0_rails5_semantic_logger.gemfile.lock |  4 ++--
 .../jruby_9.2.8.0_rails61_mysql2.gemfile.lock |  4 ++--
 ...ruby_9.2.8.0_rails61_postgres.gemfile.lock |  4 ++--
 ....2.8.0_rails61_postgres_redis.gemfile.lock |  4 ++--
 ....8.0_rails61_postgres_sidekiq.gemfile.lock |  4 ++--
 ...2.8.0_rails61_semantic_logger.gemfile.lock |  4 ++--
 .../jruby_9.2.8.0_rails6_mysql2.gemfile.lock  |  4 ++--
 ...jruby_9.2.8.0_rails6_postgres.gemfile.lock |  4 ++--
 ...9.2.8.0_rails6_postgres_redis.gemfile.lock |  4 ++--
 ..._postgres_redis_activesupport.gemfile.lock |  4 ++--
 ...2.8.0_rails6_postgres_sidekiq.gemfile.lock |  4 ++--
 ....2.8.0_rails6_semantic_logger.gemfile.lock |  4 ++--
 .../jruby_9.2.8.0_resque2_redis3.gemfile.lock |  4 ++--
 .../jruby_9.2.8.0_resque2_redis4.gemfile.lock |  4 ++--
 gemfiles/jruby_9.3.4.0_contrib.gemfile.lock   |  9 ++++++---
 .../jruby_9.3.4.0_contrib_old.gemfile.lock    |  6 +++---
 gemfiles/jruby_9.3.4.0_core_old.gemfile.lock  |  6 +++---
 gemfiles/jruby_9.3.4.0_cucumber3.gemfile.lock |  6 +++---
 gemfiles/jruby_9.3.4.0_cucumber4.gemfile.lock |  6 +++---
 gemfiles/jruby_9.3.4.0_cucumber5.gemfile.lock |  6 +++---
 .../jruby_9.3.4.0_rails5_mysql2.gemfile.lock  |  6 +++---
 ...jruby_9.3.4.0_rails5_postgres.gemfile.lock |  6 +++---
 ...9.3.4.0_rails5_postgres_redis.gemfile.lock |  6 +++---
 ..._postgres_redis_activesupport.gemfile.lock |  6 +++---
 ...3.4.0_rails5_postgres_sidekiq.gemfile.lock |  6 +++---
 ....3.4.0_rails5_semantic_logger.gemfile.lock |  6 +++---
 .../jruby_9.3.4.0_rails61_mysql2.gemfile.lock |  6 +++---
 ...ruby_9.3.4.0_rails61_postgres.gemfile.lock |  6 +++---
 ....3.4.0_rails61_postgres_redis.gemfile.lock |  6 +++---
 ....4.0_rails61_postgres_sidekiq.gemfile.lock |  6 +++---
 ...3.4.0_rails61_semantic_logger.gemfile.lock |  6 +++---
 .../jruby_9.3.4.0_rails6_mysql2.gemfile.lock  |  6 +++---
 ...jruby_9.3.4.0_rails6_postgres.gemfile.lock |  6 +++---
 ...9.3.4.0_rails6_postgres_redis.gemfile.lock |  6 +++---
 ..._postgres_redis_activesupport.gemfile.lock |  6 +++---
 ...3.4.0_rails6_postgres_sidekiq.gemfile.lock |  6 +++---
 ....3.4.0_rails6_semantic_logger.gemfile.lock |  6 +++---
 .../jruby_9.3.4.0_resque2_redis3.gemfile.lock |  6 +++---
 .../jruby_9.3.4.0_resque2_redis4.gemfile.lock |  6 +++---
 gemfiles/ruby_2.1.10_contrib.gemfile.lock     | 11 +++++++----
 gemfiles/ruby_2.1.10_core_old.gemfile.lock    |  8 ++++----
 .../ruby_2.1.10_rails32_mysql2.gemfile.lock   |  8 ++++----
 .../ruby_2.1.10_rails32_postgres.gemfile.lock |  8 ++++----
 ...2.1.10_rails32_postgres_redis.gemfile.lock |  8 ++++----
 ...1.10_rails32_postgres_sidekiq.gemfile.lock |  8 ++++----
 .../ruby_2.1.10_rails4_mysql2.gemfile.lock    |  8 ++++----
 .../ruby_2.1.10_rails4_postgres.gemfile.lock  |  8 ++++----
 ..._2.1.10_rails4_postgres_redis.gemfile.lock |  8 ++++----
 ...2.1.10_rails4_semantic_logger.gemfile.lock |  8 ++++----
 gemfiles/ruby_2.2.10_contrib.gemfile.lock     | 11 +++++++----
 gemfiles/ruby_2.2.10_core_old.gemfile.lock    |  8 ++++----
 .../ruby_2.2.10_rails32_mysql2.gemfile.lock   |  8 ++++----
 .../ruby_2.2.10_rails32_postgres.gemfile.lock |  8 ++++----
 ...2.2.10_rails32_postgres_redis.gemfile.lock |  8 ++++----
 ...2.10_rails32_postgres_sidekiq.gemfile.lock |  8 ++++----
 .../ruby_2.2.10_rails4_mysql2.gemfile.lock    |  8 ++++----
 .../ruby_2.2.10_rails4_postgres.gemfile.lock  |  4 ++--
 ..._2.2.10_rails4_postgres_redis.gemfile.lock |  8 ++++----
 ....2.10_rails4_postgres_sidekiq.gemfile.lock |  4 ++--
 ...2.2.10_rails4_semantic_logger.gemfile.lock |  8 ++++----
 .../ruby_2.2.10_rails5_mysql2.gemfile.lock    |  8 ++++----
 .../ruby_2.2.10_rails5_postgres.gemfile.lock  |  4 ++--
 ..._2.2.10_rails5_postgres_redis.gemfile.lock |  8 ++++----
 ..._postgres_redis_activesupport.gemfile.lock |  4 ++--
 ....2.10_rails5_postgres_sidekiq.gemfile.lock |  8 ++++----
 ...2.2.10_rails5_semantic_logger.gemfile.lock |  4 ++--
 gemfiles/ruby_2.3.8_contrib.gemfile.lock      | 11 +++++++----
 gemfiles/ruby_2.3.8_contrib_old.gemfile.lock  |  8 ++++----
 gemfiles/ruby_2.3.8_core_old.gemfile.lock     |  8 ++++----
 gemfiles/ruby_2.3.8_cucumber3.gemfile.lock    |  8 ++++----
 gemfiles/ruby_2.3.8_cucumber4.gemfile.lock    |  8 ++++----
 .../ruby_2.3.8_rails32_mysql2.gemfile.lock    |  8 ++++----
 .../ruby_2.3.8_rails32_postgres.gemfile.lock  |  8 ++++----
 ..._2.3.8_rails32_postgres_redis.gemfile.lock |  8 ++++----
 ....3.8_rails32_postgres_sidekiq.gemfile.lock |  8 ++++----
 .../ruby_2.3.8_rails4_mysql2.gemfile.lock     |  8 ++++----
 .../ruby_2.3.8_rails4_postgres.gemfile.lock   |  4 ++--
 ...y_2.3.8_rails4_postgres_redis.gemfile.lock |  8 ++++----
 ...2.3.8_rails4_postgres_sidekiq.gemfile.lock |  4 ++--
 ..._2.3.8_rails4_semantic_logger.gemfile.lock |  8 ++++----
 .../ruby_2.3.8_rails5_mysql2.gemfile.lock     |  8 ++++----
 .../ruby_2.3.8_rails5_postgres.gemfile.lock   |  4 ++--
 ...y_2.3.8_rails5_postgres_redis.gemfile.lock |  8 ++++----
 ..._postgres_redis_activesupport.gemfile.lock |  8 ++++----
 ...2.3.8_rails5_postgres_sidekiq.gemfile.lock |  8 ++++----
 ..._2.3.8_rails5_semantic_logger.gemfile.lock |  4 ++--
 .../ruby_2.3.8_resque2_redis3.gemfile.lock    |  8 ++++----
 .../ruby_2.3.8_resque2_redis4.gemfile.lock    |  4 ++--
 gemfiles/ruby_2.4.10_contrib.gemfile.lock     |  5 ++++-
 gemfiles/ruby_2.4.10_contrib_old.gemfile.lock |  2 +-
 gemfiles/ruby_2.4.10_core_old.gemfile.lock    |  2 +-
 gemfiles/ruby_2.4.10_cucumber3.gemfile.lock   |  2 +-
 gemfiles/ruby_2.4.10_cucumber4.gemfile.lock   |  2 +-
 .../ruby_2.4.10_rails5_mysql2.gemfile.lock    |  2 +-
 .../ruby_2.4.10_rails5_postgres.gemfile.lock  |  2 +-
 ..._2.4.10_rails5_postgres_redis.gemfile.lock |  2 +-
 ..._postgres_redis_activesupport.gemfile.lock |  2 +-
 ....4.10_rails5_postgres_sidekiq.gemfile.lock |  2 +-
 ...2.4.10_rails5_semantic_logger.gemfile.lock |  2 +-
 .../ruby_2.4.10_resque2_redis3.gemfile.lock   |  2 +-
 .../ruby_2.4.10_resque2_redis4.gemfile.lock   |  2 +-
 gemfiles/ruby_2.5.9_contrib.gemfile.lock      |  5 ++++-
 gemfiles/ruby_2.5.9_contrib_old.gemfile.lock  |  2 +-
 gemfiles/ruby_2.5.9_core_old.gemfile.lock     |  2 +-
 gemfiles/ruby_2.5.9_cucumber3.gemfile.lock    |  2 +-
 gemfiles/ruby_2.5.9_cucumber4.gemfile.lock    |  2 +-
 gemfiles/ruby_2.5.9_cucumber5.gemfile.lock    |  2 +-
 .../ruby_2.5.9_rails5_mysql2.gemfile.lock     |  2 +-
 .../ruby_2.5.9_rails5_postgres.gemfile.lock   |  2 +-
 ...y_2.5.9_rails5_postgres_redis.gemfile.lock |  2 +-
 ..._postgres_redis_activesupport.gemfile.lock |  2 +-
 ...2.5.9_rails5_postgres_sidekiq.gemfile.lock |  2 +-
 ..._2.5.9_rails5_semantic_logger.gemfile.lock |  2 +-
 .../ruby_2.5.9_rails61_mysql2.gemfile.lock    |  2 +-
 .../ruby_2.5.9_rails61_postgres.gemfile.lock  |  2 +-
 ..._2.5.9_rails61_postgres_redis.gemfile.lock |  2 +-
 ....5.9_rails61_postgres_sidekiq.gemfile.lock |  2 +-
 ...2.5.9_rails61_semantic_logger.gemfile.lock |  2 +-
 .../ruby_2.5.9_rails6_mysql2.gemfile.lock     |  2 +-
 .../ruby_2.5.9_rails6_postgres.gemfile.lock   |  2 +-
 ...y_2.5.9_rails6_postgres_redis.gemfile.lock |  2 +-
 ..._postgres_redis_activesupport.gemfile.lock |  2 +-
 ...2.5.9_rails6_postgres_sidekiq.gemfile.lock |  2 +-
 ..._2.5.9_rails6_semantic_logger.gemfile.lock |  2 +-
 .../ruby_2.5.9_resque2_redis3.gemfile.lock    |  2 +-
 .../ruby_2.5.9_resque2_redis4.gemfile.lock    |  2 +-
 gemfiles/ruby_2.6.7_contrib.gemfile.lock      |  5 ++++-
 gemfiles/ruby_2.6.7_contrib_old.gemfile.lock  |  2 +-
 gemfiles/ruby_2.6.7_core_old.gemfile.lock     |  2 +-
 gemfiles/ruby_2.6.7_cucumber3.gemfile.lock    |  2 +-
 gemfiles/ruby_2.6.7_cucumber4.gemfile.lock    |  2 +-
 gemfiles/ruby_2.6.7_cucumber5.gemfile.lock    |  2 +-
 .../ruby_2.6.7_rails5_mysql2.gemfile.lock     |  2 +-
 .../ruby_2.6.7_rails5_postgres.gemfile.lock   |  2 +-
 ...y_2.6.7_rails5_postgres_redis.gemfile.lock |  2 +-
 ..._postgres_redis_activesupport.gemfile.lock |  2 +-
 ...2.6.7_rails5_postgres_sidekiq.gemfile.lock |  2 +-
 ..._2.6.7_rails5_semantic_logger.gemfile.lock |  2 +-
 .../ruby_2.6.7_rails61_mysql2.gemfile.lock    |  2 +-
 .../ruby_2.6.7_rails61_postgres.gemfile.lock  |  2 +-
 ..._2.6.7_rails61_postgres_redis.gemfile.lock |  2 +-
 ....6.7_rails61_postgres_sidekiq.gemfile.lock |  2 +-
 ...2.6.7_rails61_semantic_logger.gemfile.lock |  2 +-
 .../ruby_2.6.7_rails6_mysql2.gemfile.lock     |  2 +-
 .../ruby_2.6.7_rails6_postgres.gemfile.lock   |  2 +-
 ...y_2.6.7_rails6_postgres_redis.gemfile.lock |  2 +-
 ..._postgres_redis_activesupport.gemfile.lock |  2 +-
 ...2.6.7_rails6_postgres_sidekiq.gemfile.lock |  2 +-
 ..._2.6.7_rails6_semantic_logger.gemfile.lock |  2 +-
 .../ruby_2.6.7_resque2_redis3.gemfile.lock    |  2 +-
 .../ruby_2.6.7_resque2_redis4.gemfile.lock    |  2 +-
 gemfiles/ruby_2.7.3_contrib.gemfile.lock      |  9 ++++++---
 gemfiles/ruby_2.7.3_contrib_old.gemfile.lock  |  6 +++---
 gemfiles/ruby_2.7.3_core_old.gemfile.lock     |  6 +++---
 gemfiles/ruby_2.7.3_cucumber3.gemfile.lock    |  6 +++---
 gemfiles/ruby_2.7.3_cucumber4.gemfile.lock    |  6 +++---
 gemfiles/ruby_2.7.3_cucumber5.gemfile.lock    |  6 +++---
 .../ruby_2.7.3_rails5_mysql2.gemfile.lock     |  6 +++---
 .../ruby_2.7.3_rails5_postgres.gemfile.lock   |  6 +++---
 ...y_2.7.3_rails5_postgres_redis.gemfile.lock |  6 +++---
 ..._postgres_redis_activesupport.gemfile.lock |  6 +++---
 ...2.7.3_rails5_postgres_sidekiq.gemfile.lock |  6 +++---
 ..._2.7.3_rails5_semantic_logger.gemfile.lock |  6 +++---
 .../ruby_2.7.3_rails61_mysql2.gemfile.lock    |  6 +++---
 .../ruby_2.7.3_rails61_postgres.gemfile.lock  |  6 +++---
 ..._2.7.3_rails61_postgres_redis.gemfile.lock |  2 +-
 ....7.3_rails61_postgres_sidekiq.gemfile.lock |  2 +-
 ...2.7.3_rails61_semantic_logger.gemfile.lock |  2 +-
 .../ruby_2.7.3_rails6_mysql2.gemfile.lock     |  6 +++---
 .../ruby_2.7.3_rails6_postgres.gemfile.lock   |  2 +-
 ...y_2.7.3_rails6_postgres_redis.gemfile.lock |  2 +-
 ..._postgres_redis_activesupport.gemfile.lock |  2 +-
 ...2.7.3_rails6_postgres_sidekiq.gemfile.lock |  2 +-
 ..._2.7.3_rails6_semantic_logger.gemfile.lock |  2 +-
 .../ruby_2.7.3_resque2_redis3.gemfile.lock    |  6 +++---
 .../ruby_2.7.3_resque2_redis4.gemfile.lock    |  2 +-
 gemfiles/ruby_3.0.3_contrib.gemfile.lock      |  8 +++++++-
 gemfiles/ruby_3.0.3_contrib_old.gemfile.lock  |  5 ++++-
 gemfiles/ruby_3.0.3_core_old.gemfile.lock     |  5 ++++-
 gemfiles/ruby_3.0.3_cucumber3.gemfile.lock    |  5 ++++-
 gemfiles/ruby_3.0.3_cucumber4.gemfile.lock    |  5 ++++-
 gemfiles/ruby_3.0.3_cucumber5.gemfile.lock    |  5 ++++-
 .../ruby_3.0.3_rails61_mysql2.gemfile.lock    |  5 ++++-
 .../ruby_3.0.3_rails61_postgres.gemfile.lock  |  5 ++++-
 ..._3.0.3_rails61_postgres_redis.gemfile.lock |  5 ++++-
 ....0.3_rails61_postgres_sidekiq.gemfile.lock |  5 ++++-
 ...3.0.3_rails61_semantic_logger.gemfile.lock |  5 ++++-
 .../ruby_3.0.3_resque2_redis3.gemfile.lock    |  5 ++++-
 .../ruby_3.0.3_resque2_redis4.gemfile.lock    |  5 ++++-
 gemfiles/ruby_3.1.1_contrib.gemfile.lock      | 19 ++++++++++++++++---
 gemfiles/ruby_3.1.1_contrib_old.gemfile.lock  |  9 +++++++--
 gemfiles/ruby_3.1.1_core_old.gemfile.lock     |  9 +++++++--
 gemfiles/ruby_3.1.1_cucumber3.gemfile.lock    |  9 +++++++--
 gemfiles/ruby_3.1.1_cucumber4.gemfile.lock    |  9 +++++++--
 gemfiles/ruby_3.1.1_cucumber5.gemfile.lock    |  9 +++++++--
 .../ruby_3.1.1_rails61_mysql2.gemfile.lock    | 11 +++++++++--
 .../ruby_3.1.1_rails61_postgres.gemfile.lock  | 11 +++++++++--
 ..._3.1.1_rails61_postgres_redis.gemfile.lock | 11 +++++++++--
 ....1.1_rails61_postgres_sidekiq.gemfile.lock | 11 +++++++++--
 ...3.1.1_rails61_semantic_logger.gemfile.lock | 11 +++++++++--
 .../ruby_3.1.1_resque2_redis3.gemfile.lock    |  9 +++++++--
 .../ruby_3.1.1_resque2_redis4.gemfile.lock    |  9 +++++++--
 gemfiles/ruby_3.2.0_contrib.gemfile.lock      |  6 +++++-
 gemfiles/ruby_3.2.0_contrib_old.gemfile.lock  |  8 +++++++-
 gemfiles/ruby_3.2.0_core_old.gemfile.lock     |  8 +++++++-
 gemfiles/ruby_3.2.0_cucumber3.gemfile.lock    | 14 +++++++++++++-
 gemfiles/ruby_3.2.0_cucumber4.gemfile.lock    | 14 +++++++++++++-
 gemfiles/ruby_3.2.0_cucumber5.gemfile.lock    | 14 +++++++++++++-
 .../ruby_3.2.0_rails61_mysql2.gemfile.lock    |  8 +++++++-
 .../ruby_3.2.0_rails61_postgres.gemfile.lock  |  8 +++++++-
 ..._3.2.0_rails61_postgres_redis.gemfile.lock |  8 +++++++-
 ....2.0_rails61_postgres_sidekiq.gemfile.lock |  8 +++++++-
 ...3.2.0_rails61_semantic_logger.gemfile.lock |  8 +++++++-
 .../ruby_3.2.0_resque2_redis3.gemfile.lock    |  8 +++++++-
 .../ruby_3.2.0_resque2_redis4.gemfile.lock    |  8 +++++++-
 251 files changed, 773 insertions(+), 524 deletions(-)

diff --git a/gemfiles/jruby_9.2.18.0_contrib.gemfile.lock b/gemfiles/jruby_9.2.18.0_contrib.gemfile.lock
index 985565784b2..0ee2a8df660 100644
--- a/gemfiles/jruby_9.2.18.0_contrib.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_contrib.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -1439,7 +1439,7 @@ GEM
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
@@ -1495,6 +1495,8 @@ GEM
     rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
+    rack-contrib (2.3.0)
+      rack (~> 2.0)
     rack-protection (2.2.0)
       rack
     rack-test (1.1.0)
@@ -1683,6 +1685,7 @@ DEPENDENCIES
   que (>= 1.0.0)
   racecar (>= 0.3.5)
   rack
+  rack-contrib
   rack-test
   rake (>= 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
diff --git a/gemfiles/jruby_9.2.18.0_contrib_old.gemfile.lock b/gemfiles/jruby_9.2.18.0_contrib_old.gemfile.lock
index 9917914093c..03eda98cb32 100644
--- a/gemfiles/jruby_9.2.18.0_contrib_old.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_contrib_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -60,7 +60,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.18.0_core_old.gemfile.lock b/gemfiles/jruby_9.2.18.0_core_old.gemfile.lock
index 2e02afbc2bd..463a1e7d527 100644
--- a/gemfiles/jruby_9.2.18.0_core_old.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_core_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.18.0_cucumber3.gemfile.lock b/gemfiles/jruby_9.2.18.0_cucumber3.gemfile.lock
index 06895c601e9..cfa7808217f 100644
--- a/gemfiles/jruby_9.2.18.0_cucumber3.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_cucumber3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -64,7 +64,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.18.0_cucumber4.gemfile.lock b/gemfiles/jruby_9.2.18.0_cucumber4.gemfile.lock
index 557a60004d2..636b0911f3b 100644
--- a/gemfiles/jruby_9.2.18.0_cucumber4.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_cucumber4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -85,7 +85,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.18.0_cucumber5.gemfile.lock b/gemfiles/jruby_9.2.18.0_cucumber5.gemfile.lock
index 325f0069345..8bf02759380 100644
--- a/gemfiles/jruby_9.2.18.0_cucumber5.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_cucumber5.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -85,7 +85,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile.lock
index 9029e33ebf8..6b032961e89 100644
--- a/gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile.lock
index 286bd7bf85e..61af3045721 100644
--- a/gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock
index 691a4f39c38..c0a90996ffb 100644
--- a/gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock
index b975442eec7..5774902eca7 100644
--- a/gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock
index 216ee484874..e963e795810 100644
--- a/gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -101,7 +101,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock
index fe4e901b2ef..0a408d95232 100644
--- a/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile.lock
index 3201bbb6fb3..ea0599a4a68 100644
--- a/gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile.lock
index c62135ef9bc..03043347318 100644
--- a/gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock
index 33a3d516ea9..596c401b05c 100644
--- a/gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock
index e7e3bf7cee7..a8715d7db96 100644
--- a/gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -118,7 +118,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock
index d6de39b07a7..ce1295a0c8f 100644
--- a/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile.lock
index 139e4718960..9322d47909b 100644
--- a/gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile.lock
index deb18ebeb34..d58c772b3dd 100644
--- a/gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock
index f805805be1a..9f87ec74441 100644
--- a/gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock
index 782049ace4c..f8ed28b8bde 100644
--- a/gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock
index b6089826ee3..4847bd4c8de 100644
--- a/gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -114,7 +114,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock b/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock
index 3fb37f221f1..368bc21042c 100644
--- a/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile.lock b/gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile.lock
index 9c53ce33dd2..d64a13ffac5 100644
--- a/gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile.lock b/gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile.lock
index 2311d763454..6858dc9ee0c 100644
--- a/gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile.lock
+++ b/gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_contrib.gemfile.lock b/gemfiles/jruby_9.2.8.0_contrib.gemfile.lock
index 06cd52338fb..ee0ffb8a938 100644
--- a/gemfiles/jruby_9.2.8.0_contrib.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_contrib.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -1439,7 +1439,7 @@ GEM
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
@@ -1495,6 +1495,8 @@ GEM
     rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
+    rack-contrib (2.3.0)
+      rack (~> 2.0)
     rack-protection (2.2.0)
       rack
     rack-test (1.1.0)
@@ -1683,6 +1685,7 @@ DEPENDENCIES
   que (>= 1.0.0)
   racecar (>= 0.3.5)
   rack
+  rack-contrib
   rack-test
   rake (>= 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
diff --git a/gemfiles/jruby_9.2.8.0_contrib_old.gemfile.lock b/gemfiles/jruby_9.2.8.0_contrib_old.gemfile.lock
index 06ef1903fa0..960d8473adb 100644
--- a/gemfiles/jruby_9.2.8.0_contrib_old.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_contrib_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -60,7 +60,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_core_old.gemfile.lock b/gemfiles/jruby_9.2.8.0_core_old.gemfile.lock
index d10b4ec910b..1d988852c34 100644
--- a/gemfiles/jruby_9.2.8.0_core_old.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_core_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_cucumber3.gemfile.lock b/gemfiles/jruby_9.2.8.0_cucumber3.gemfile.lock
index c66364c1f37..d805d90114f 100644
--- a/gemfiles/jruby_9.2.8.0_cucumber3.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_cucumber3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -64,7 +64,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_cucumber4.gemfile.lock b/gemfiles/jruby_9.2.8.0_cucumber4.gemfile.lock
index fd075b3a020..1d3f23d8706 100644
--- a/gemfiles/jruby_9.2.8.0_cucumber4.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_cucumber4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -85,7 +85,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_cucumber5.gemfile.lock b/gemfiles/jruby_9.2.8.0_cucumber5.gemfile.lock
index 98b089ced78..c8c48e5a86b 100644
--- a/gemfiles/jruby_9.2.8.0_cucumber5.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_cucumber5.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -85,7 +85,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_rails5_mysql2.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails5_mysql2.gemfile.lock
index 5fcf89039b7..0405caf8653 100644
--- a/gemfiles/jruby_9.2.8.0_rails5_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails5_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails5_postgres.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails5_postgres.gemfile.lock
index 8816ddeb5a5..508c7b34caa 100644
--- a/gemfiles/jruby_9.2.8.0_rails5_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails5_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails5_postgres_redis.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails5_postgres_redis.gemfile.lock
index de329bf3d3d..e9124147dc8 100644
--- a/gemfiles/jruby_9.2.8.0_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails5_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails5_postgres_redis_activesupport.gemfile.lock
index 21bd543eadd..c43e0949486 100644
--- a/gemfiles/jruby_9.2.8.0_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails5_postgres_redis_activesupport.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails5_postgres_sidekiq.gemfile.lock
index 235ff9e153d..42addd51eb1 100644
--- a/gemfiles/jruby_9.2.8.0_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails5_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -101,7 +101,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails5_semantic_logger.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails5_semantic_logger.gemfile.lock
index 422ac7d6e2f..bae43fa7417 100644
--- a/gemfiles/jruby_9.2.8.0_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails5_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.2.8.0_rails61_mysql2.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails61_mysql2.gemfile.lock
index 67c6df0052d..da979b2a17c 100644
--- a/gemfiles/jruby_9.2.8.0_rails61_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails61_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails61_postgres.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails61_postgres.gemfile.lock
index c2e4ac433d9..77843056393 100644
--- a/gemfiles/jruby_9.2.8.0_rails61_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails61_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails61_postgres_redis.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails61_postgres_redis.gemfile.lock
index 8747f1d4ee6..7df0f8134bc 100644
--- a/gemfiles/jruby_9.2.8.0_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails61_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails61_postgres_sidekiq.gemfile.lock
index 6e568c5c792..7f0b58114af 100644
--- a/gemfiles/jruby_9.2.8.0_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails61_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -118,7 +118,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails61_semantic_logger.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails61_semantic_logger.gemfile.lock
index dbfcdff2c9f..1bcf96cb5f6 100644
--- a/gemfiles/jruby_9.2.8.0_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails61_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.2.8.0_rails6_mysql2.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails6_mysql2.gemfile.lock
index a5065ddb075..caaea4d6ceb 100644
--- a/gemfiles/jruby_9.2.8.0_rails6_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails6_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails6_postgres.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails6_postgres.gemfile.lock
index 86a4ef3189e..86707f5d822 100644
--- a/gemfiles/jruby_9.2.8.0_rails6_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails6_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails6_postgres_redis.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails6_postgres_redis.gemfile.lock
index 891820fc793..203761dc69e 100644
--- a/gemfiles/jruby_9.2.8.0_rails6_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails6_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails6_postgres_redis_activesupport.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails6_postgres_redis_activesupport.gemfile.lock
index c6639e4908c..7204a98851d 100644
--- a/gemfiles/jruby_9.2.8.0_rails6_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails6_postgres_redis_activesupport.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails6_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails6_postgres_sidekiq.gemfile.lock
index 4d653a9b05b..434cd05759d 100644
--- a/gemfiles/jruby_9.2.8.0_rails6_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails6_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -114,7 +114,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/jruby_9.2.8.0_rails6_semantic_logger.gemfile.lock b/gemfiles/jruby_9.2.8.0_rails6_semantic_logger.gemfile.lock
index 80106ba6e89..059dc1bc5b6 100644
--- a/gemfiles/jruby_9.2.8.0_rails6_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_rails6_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/jruby_9.2.8.0_resque2_redis3.gemfile.lock b/gemfiles/jruby_9.2.8.0_resque2_redis3.gemfile.lock
index ac7cd5fdd27..3e5092cd5e1 100644
--- a/gemfiles/jruby_9.2.8.0_resque2_redis3.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_resque2_redis3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.2.8.0_resque2_redis4.gemfile.lock b/gemfiles/jruby_9.2.8.0_resque2_redis4.gemfile.lock
index 2fe69bd9415..152972dbdfe 100644
--- a/gemfiles/jruby_9.2.8.0_resque2_redis4.gemfile.lock
+++ b/gemfiles/jruby_9.2.8.0_resque2_redis4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/jruby_9.3.4.0_contrib.gemfile.lock b/gemfiles/jruby_9.3.4.0_contrib.gemfile.lock
index ff34817e748..b462dedcad3 100644
--- a/gemfiles/jruby_9.3.4.0_contrib.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_contrib.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -1439,7 +1439,7 @@ GEM
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -1495,6 +1495,8 @@ GEM
     rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
+    rack-contrib (2.3.0)
+      rack (~> 2.0)
     rack-protection (2.2.0)
       rack
     rack-test (1.1.0)
@@ -1682,6 +1684,7 @@ DEPENDENCIES
   que (>= 1.0.0)
   racecar (>= 0.3.5)
   rack
+  rack-contrib
   rack-test
   rake (>= 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
@@ -1712,4 +1715,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_contrib_old.gemfile.lock b/gemfiles/jruby_9.3.4.0_contrib_old.gemfile.lock
index c96a9b836d7..741cefe2e42 100644
--- a/gemfiles/jruby_9.3.4.0_contrib_old.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_contrib_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -60,7 +60,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
@@ -186,4 +186,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_core_old.gemfile.lock b/gemfiles/jruby_9.3.4.0_core_old.gemfile.lock
index fd0d84f1d65..ca85fefe9ef 100644
--- a/gemfiles/jruby_9.3.4.0_core_old.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_core_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
@@ -161,4 +161,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_cucumber3.gemfile.lock b/gemfiles/jruby_9.3.4.0_cucumber3.gemfile.lock
index e83d65b4d59..c19dc867ae3 100644
--- a/gemfiles/jruby_9.3.4.0_cucumber3.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_cucumber3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -64,7 +64,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
@@ -182,4 +182,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_cucumber4.gemfile.lock b/gemfiles/jruby_9.3.4.0_cucumber4.gemfile.lock
index 230272eb356..50f25d2ca6c 100644
--- a/gemfiles/jruby_9.3.4.0_cucumber4.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_cucumber4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -85,7 +85,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
@@ -215,4 +215,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_cucumber5.gemfile.lock b/gemfiles/jruby_9.3.4.0_cucumber5.gemfile.lock
index 9da810cbda4..a386729e2c9 100644
--- a/gemfiles/jruby_9.3.4.0_cucumber5.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_cucumber5.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -85,7 +85,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
@@ -215,4 +215,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails5_mysql2.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails5_mysql2.gemfile.lock
index eda49c3016b..a63dabd4880 100644
--- a/gemfiles/jruby_9.3.4.0_rails5_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails5_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -279,4 +279,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails5_postgres.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails5_postgres.gemfile.lock
index 969d1ec89ea..1e9b28a4aa9 100644
--- a/gemfiles/jruby_9.3.4.0_rails5_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails5_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -279,4 +279,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails5_postgres_redis.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails5_postgres_redis.gemfile.lock
index b9548552078..1a329f00d3b 100644
--- a/gemfiles/jruby_9.3.4.0_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails5_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -281,4 +281,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails5_postgres_redis_activesupport.gemfile.lock
index 089649e6e29..301d896699c 100644
--- a/gemfiles/jruby_9.3.4.0_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails5_postgres_redis_activesupport.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -298,4 +298,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails5_postgres_sidekiq.gemfile.lock
index e65855d77e8..f61ac0ac158 100644
--- a/gemfiles/jruby_9.3.4.0_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails5_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -101,7 +101,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -287,4 +287,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails5_semantic_logger.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails5_semantic_logger.gemfile.lock
index b07b87ddb3e..581171da2f9 100644
--- a/gemfiles/jruby_9.3.4.0_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails5_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -100,7 +100,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
@@ -278,4 +278,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails61_mysql2.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails61_mysql2.gemfile.lock
index cdee6c4666a..03bfbdae36e 100644
--- a/gemfiles/jruby_9.3.4.0_rails61_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails61_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -298,4 +298,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails61_postgres.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails61_postgres.gemfile.lock
index 12f47f62aec..ce64d4be76d 100644
--- a/gemfiles/jruby_9.3.4.0_rails61_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails61_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -298,4 +298,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails61_postgres_redis.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails61_postgres_redis.gemfile.lock
index 0ad0d45c773..ee08a40d526 100644
--- a/gemfiles/jruby_9.3.4.0_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails61_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -300,4 +300,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails61_postgres_sidekiq.gemfile.lock
index b5216dab82a..24572d73fc0 100644
--- a/gemfiles/jruby_9.3.4.0_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails61_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -118,7 +118,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -305,4 +305,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails61_semantic_logger.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails61_semantic_logger.gemfile.lock
index 52cbc105c26..4c665bb077d 100644
--- a/gemfiles/jruby_9.3.4.0_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails61_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -117,7 +117,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
@@ -297,4 +297,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails6_mysql2.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails6_mysql2.gemfile.lock
index f60da8f95a0..b83687a3466 100644
--- a/gemfiles/jruby_9.3.4.0_rails6_mysql2.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails6_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -295,4 +295,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails6_postgres.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails6_postgres.gemfile.lock
index e1c36a2e431..bbe14499e1a 100644
--- a/gemfiles/jruby_9.3.4.0_rails6_postgres.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails6_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -295,4 +295,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails6_postgres_redis.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails6_postgres_redis.gemfile.lock
index b6c220abfc0..7718257b005 100644
--- a/gemfiles/jruby_9.3.4.0_rails6_postgres_redis.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails6_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -297,4 +297,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails6_postgres_redis_activesupport.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails6_postgres_redis_activesupport.gemfile.lock
index 4502b08da77..8c290d05ca1 100644
--- a/gemfiles/jruby_9.3.4.0_rails6_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails6_postgres_redis_activesupport.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -314,4 +314,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails6_postgres_sidekiq.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails6_postgres_sidekiq.gemfile.lock
index 7abcf69ba2d..17b8fe026d8 100644
--- a/gemfiles/jruby_9.3.4.0_rails6_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails6_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -114,7 +114,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     lograge (0.12.0)
       actionpack (>= 4)
@@ -303,4 +303,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_rails6_semantic_logger.gemfile.lock b/gemfiles/jruby_9.3.4.0_rails6_semantic_logger.gemfile.lock
index 525eb5239cd..8fd0996e1e0 100644
--- a/gemfiles/jruby_9.3.4.0_rails6_semantic_logger.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_rails6_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -113,7 +113,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
@@ -294,4 +294,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_resque2_redis3.gemfile.lock b/gemfiles/jruby_9.3.4.0_resque2_redis3.gemfile.lock
index 608c1d1e5ff..2970d23f0c1 100644
--- a/gemfiles/jruby_9.3.4.0_resque2_redis3.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_resque2_redis3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
@@ -185,4 +185,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/jruby_9.3.4.0_resque2_redis4.gemfile.lock b/gemfiles/jruby_9.3.4.0_resque2_redis4.gemfile.lock
index 300f38774c8..6895496297b 100644
--- a/gemfiles/jruby_9.3.4.0_resque2_redis4.gemfile.lock
+++ b/gemfiles/jruby_9.3.4.0_resque2_redis4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,7 +46,7 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     libdatadog (0.7.0.1.1)
-    libddwaf (1.5.1.0.0)
+    libddwaf (1.5.1.0.0-java)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
@@ -185,4 +185,4 @@ DEPENDENCIES
   yard (~> 0.9)
 
 BUNDLED WITH
-   2.3.20
+   2.3.10
diff --git a/gemfiles/ruby_2.1.10_contrib.gemfile.lock b/gemfiles/ruby_2.1.10_contrib.gemfile.lock
index 0890d4b1632..32239f8b3f3 100644
--- a/gemfiles/ruby_2.1.10_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_contrib.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -75,7 +75,7 @@ GEM
     crack (0.4.5)
       rexml
     dalli (2.7.11)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     delayed_job (4.1.9)
       activesupport (>= 3.0, < 6.2)
@@ -126,8 +126,8 @@ GEM
     json (1.8.6)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     makara (0.4.1)
       activerecord (>= 3.0.0)
@@ -164,6 +164,8 @@ GEM
     rack (1.4.7)
     rack-cache (1.7.1)
       rack (>= 0.4)
+    rack-contrib (1.8.0)
+      rack (~> 1.4)
     rack-protection (1.5.5)
       rack
     rack-test (0.7.0)
@@ -291,6 +293,7 @@ DEPENDENCIES
   pry-stack_explorer
   rack (= 1.4.7)
   rack-cache (= 1.7.1)
+  rack-contrib
   rack-test (= 0.7.0)
   rake (< 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
diff --git a/gemfiles/ruby_2.1.10_core_old.gemfile.lock b/gemfiles/ruby_2.1.10_core_old.gemfile.lock
index 14c3a329964..1ff7482d80f 100644
--- a/gemfiles/ruby_2.1.10_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_core_old.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -26,7 +26,7 @@ GEM
     concurrent-ruby (1.1.9)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -37,8 +37,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.12)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock b/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock
index 7925e249703..f846a650803 100644
--- a/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -58,7 +58,7 @@ GEM
     concurrent-ruby (1.1.9)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -74,8 +74,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock b/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock
index 72d51c05894..cebe0f84a4c 100644
--- a/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -54,7 +54,7 @@ GEM
     concurrent-ruby (1.1.9)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -70,8 +70,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock b/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock
index ca2e3887400..b14a2d1ed0a 100644
--- a/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -54,7 +54,7 @@ GEM
     concurrent-ruby (1.1.9)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -70,8 +70,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock
index 3e445a8988f..d96dedcb305 100644
--- a/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -55,7 +55,7 @@ GEM
     connection_pool (2.2.3)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -71,8 +71,8 @@ GEM
     json (1.8.6)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock b/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock
index 3be23298ddc..aec3824cb8e 100644
--- a/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -78,8 +78,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock b/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock
index 54fd3235a2c..d5f404a9d40 100644
--- a/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -78,8 +78,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock b/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock
index bcbc5dafe2b..b4fcc5ddd49 100644
--- a/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -78,8 +78,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock b/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock
index 01e4bf26d75..360f7ae8833 100644
--- a/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -78,8 +78,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.2.10_contrib.gemfile.lock b/gemfiles/ruby_2.2.10_contrib.gemfile.lock
index 29f27d5b6ab..925c6016689 100644
--- a/gemfiles/ruby_2.2.10_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_contrib.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -1197,7 +1197,7 @@ GEM
     crass (1.0.6)
     daemons (1.4.1)
     dalli (2.7.11)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     delayed_job (4.1.10)
       activesupport (>= 3.0, < 8.0)
@@ -1268,8 +1268,8 @@ GEM
       addressable (>= 2.4)
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
@@ -1339,6 +1339,8 @@ GEM
     rack (2.0.9)
     rack-accept (0.4.5)
       rack (>= 0.4)
+    rack-contrib (2.3.0)
+      rack (~> 2.0)
     rack-protection (2.0.8.1)
       rack
     rack-test (1.1.0)
@@ -1509,6 +1511,7 @@ DEPENDENCIES
   que (>= 1.0.0)
   racecar (>= 0.3.5)
   rack (< 2.1.0)
+  rack-contrib
   rack-test
   rake (>= 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
diff --git a/gemfiles/ruby_2.2.10_core_old.gemfile.lock b/gemfiles/ruby_2.2.10_core_old.gemfile.lock
index 7a5cca1a620..c7573cbc382 100644
--- a/gemfiles/ruby_2.2.10_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_core_old.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -26,7 +26,7 @@ GEM
     concurrent-ruby (1.1.10)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -37,8 +37,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.12)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock b/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock
index ee4fe014d7e..a745c101156 100644
--- a/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -58,7 +58,7 @@ GEM
     concurrent-ruby (1.1.10)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -74,8 +74,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock b/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock
index c18a8cbd18b..cfbe6334b85 100644
--- a/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -54,7 +54,7 @@ GEM
     concurrent-ruby (1.1.10)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -70,8 +70,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock b/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock
index 02110b650cd..5df09a1904b 100644
--- a/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -54,7 +54,7 @@ GEM
     concurrent-ruby (1.1.10)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -70,8 +70,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock
index a4b452afc99..22cfadfeb2a 100644
--- a/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -55,7 +55,7 @@ GEM
     connection_pool (2.2.5)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -71,8 +71,8 @@ GEM
     json (1.8.6)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock b/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock
index 415b54c7f99..a9857b8ab06 100644
--- a/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -78,8 +78,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock b/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock
index 058c8434c62..e5b4d04117d 100644
--- a/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
diff --git a/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock b/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock
index 52d8a18f325..89eb7592bae 100644
--- a/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -78,8 +78,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock
index db766c9b088..ad8488cc768 100644
--- a/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -63,7 +63,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
diff --git a/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock b/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock
index 0916c7bdf1f..c4d76bfddbe 100644
--- a/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -78,8 +78,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock b/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock
index bd9c827958c..dd7f4bd7b33 100644
--- a/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -69,7 +69,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -85,8 +85,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock b/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock
index d2a7e5137d2..02b73c3e212 100644
--- a/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -69,7 +69,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
diff --git a/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock b/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock
index d74a6831666..dcf4719664f 100644
--- a/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -69,7 +69,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -85,8 +85,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock
index 57877ba3f4f..8bec6643eaa 100644
--- a/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -69,7 +69,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
diff --git a/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock
index 129865cfe21..a536f3d2173 100644
--- a/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -70,7 +70,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -86,8 +86,8 @@ GEM
     json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock b/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock
index 38e97394b39..0183c2fd96c 100644
--- a/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -69,7 +69,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
diff --git a/gemfiles/ruby_2.3.8_contrib.gemfile.lock b/gemfiles/ruby_2.3.8_contrib.gemfile.lock
index d7e82144ddd..a6b875d755e 100644
--- a/gemfiles/ruby_2.3.8_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_contrib.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -1298,7 +1298,7 @@ GEM
     crass (1.0.6)
     daemons (1.4.1)
     dalli (2.7.11)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     delayed_job (4.1.10)
       activesupport (>= 3.0, < 8.0)
@@ -1364,8 +1364,8 @@ GEM
       addressable (>= 2.4)
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
@@ -1431,6 +1431,8 @@ GEM
     rack (2.0.9)
     rack-accept (0.4.5)
       rack (>= 0.4)
+    rack-contrib (2.3.0)
+      rack (~> 2.0)
     rack-protection (2.0.8.1)
       rack
     rack-test (1.1.0)
@@ -1605,6 +1607,7 @@ DEPENDENCIES
   que (>= 1.0.0)
   racecar (>= 0.3.5)
   rack (< 2.1.0)
+  rack-contrib
   rack-test
   rake (>= 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
diff --git a/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock b/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock
index 0155e3ed159..c411fcbe654 100644
--- a/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -26,7 +26,7 @@ GEM
     concurrent-ruby (1.1.10)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -49,8 +49,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.3.8_core_old.gemfile.lock b/gemfiles/ruby_2.3.8_core_old.gemfile.lock
index 778194ac0d5..8e049abe992 100644
--- a/gemfiles/ruby_2.3.8_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_core_old.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -26,7 +26,7 @@ GEM
     concurrent-ruby (1.1.10)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -37,8 +37,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock b/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock
index db68637d1a2..c82162d3099 100644
--- a/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -43,7 +43,7 @@ GEM
     cucumber-expressions (6.0.1)
     cucumber-tag_expressions (1.1.1)
     cucumber-wire (0.0.1)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -55,8 +55,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock b/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock
index 94d7ce9ee3f..bc53cda0881 100644
--- a/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
       cucumber-core (~> 7.1, >= 7.1.0)
       cucumber-cucumber-expressions (~> 10.1, >= 10.1.0)
       cucumber-messages (~> 12.2, >= 12.2.0)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.3)
     docile (1.3.5)
@@ -75,8 +75,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock b/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock
index 4121ccf6eeb..33125648468 100644
--- a/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -58,7 +58,7 @@ GEM
     concurrent-ruby (1.1.10)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -74,8 +74,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock b/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock
index c579c5b1ac6..28756da418b 100644
--- a/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -54,7 +54,7 @@ GEM
     concurrent-ruby (1.1.10)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -70,8 +70,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock b/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock
index fd1aa46c192..d4ad99f4d2d 100644
--- a/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -54,7 +54,7 @@ GEM
     concurrent-ruby (1.1.10)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -70,8 +70,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock
index db5dbfff3e2..d412a517a3f 100644
--- a/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -55,7 +55,7 @@ GEM
     connection_pool (2.2.5)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -71,8 +71,8 @@ GEM
     json (1.8.6)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     mail (2.5.5)
       mime-types (~> 1.16)
diff --git a/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock b/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock
index b70db18ba0b..a6cb5f30b8b 100644
--- a/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -78,8 +78,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock b/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock
index c5a68352e29..be8f83fddaf 100644
--- a/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
diff --git a/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock b/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock
index 5265e2a7785..29830a4163a 100644
--- a/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -78,8 +78,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock
index 19fff08f359..14c7df6632c 100644
--- a/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -63,7 +63,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
diff --git a/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock b/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock
index dce77ad4a21..211c196e105 100644
--- a/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -62,7 +62,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -78,8 +78,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock b/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock
index d5f607fa28b..fbd5d3cb707 100644
--- a/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -69,7 +69,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -85,8 +85,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock b/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock
index 1f52c9e4cbd..54d471d09dd 100644
--- a/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -69,7 +69,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
diff --git a/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock b/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock
index d504a4c7829..403a268625b 100644
--- a/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -69,7 +69,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -85,8 +85,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock
index 01644c8f431..8673cdd0a20 100644
--- a/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -69,7 +69,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -85,8 +85,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock
index dfa792b591e..36067405daa 100644
--- a/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -70,7 +70,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -86,8 +86,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock b/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock
index fbdb670d96a..f4e01b8fde0 100644
--- a/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -69,7 +69,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
diff --git a/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock b/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock
index fff4657004d..be5298fdd5e 100644
--- a/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -26,7 +26,7 @@ GEM
     concurrent-ruby (1.1.10)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
@@ -37,8 +37,8 @@ GEM
     json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock b/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock
index 57558392b00..1d089eac23d 100644
--- a/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -26,7 +26,7 @@ GEM
     concurrent-ruby (1.1.10)
     crack (0.4.5)
       rexml
-    debase-ruby_core_source (0.10.16)
+    debase-ruby_core_source (0.10.17)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     docile (1.3.5)
diff --git a/gemfiles/ruby_2.4.10_contrib.gemfile.lock b/gemfiles/ruby_2.4.10_contrib.gemfile.lock
index 14a19cd3207..d6d98bd3f0c 100644
--- a/gemfiles/ruby_2.4.10_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_contrib.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -1507,6 +1507,8 @@ GEM
     rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
+    rack-contrib (2.3.0)
+      rack (~> 2.0)
     rack-protection (2.0.8.1)
       rack
     rack-test (1.1.0)
@@ -1718,6 +1720,7 @@ DEPENDENCIES
   que (>= 1.0.0)
   racecar (>= 0.3.5)
   rack
+  rack-contrib
   rack-test
   rake (>= 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
diff --git a/gemfiles/ruby_2.4.10_contrib_old.gemfile.lock b/gemfiles/ruby_2.4.10_contrib_old.gemfile.lock
index a9917acb94c..6586d4dee0f 100644
--- a/gemfiles/ruby_2.4.10_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_contrib_old.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.4.10_core_old.gemfile.lock b/gemfiles/ruby_2.4.10_core_old.gemfile.lock
index c0d706fa5da..9926b7a2fdf 100644
--- a/gemfiles/ruby_2.4.10_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_core_old.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.4.10_cucumber3.gemfile.lock b/gemfiles/ruby_2.4.10_cucumber3.gemfile.lock
index ee84e59d761..6e12d0a992a 100644
--- a/gemfiles/ruby_2.4.10_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_cucumber3.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.4.10_cucumber4.gemfile.lock b/gemfiles/ruby_2.4.10_cucumber4.gemfile.lock
index 87ef67a1f63..ce66dc313f4 100644
--- a/gemfiles/ruby_2.4.10_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_cucumber4.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.4.10_rails5_mysql2.gemfile.lock b/gemfiles/ruby_2.4.10_rails5_mysql2.gemfile.lock
index 4d836c7a48b..f37e86e6f09 100644
--- a/gemfiles/ruby_2.4.10_rails5_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_rails5_mysql2.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.4.10_rails5_postgres.gemfile.lock b/gemfiles/ruby_2.4.10_rails5_postgres.gemfile.lock
index a794bfae40c..a196436f4c9 100644
--- a/gemfiles/ruby_2.4.10_rails5_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_rails5_postgres.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile.lock b/gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile.lock
index 1f68913e766..0cdccad1666 100644
--- a/gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock
index 61881b27922..4e061febb9e 100644
--- a/gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock
index 656f3f789fc..ebdcdd6b997 100644
--- a/gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock b/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock
index 6d6e84c2e45..32053e69e75 100644
--- a/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.4.10_resque2_redis3.gemfile.lock b/gemfiles/ruby_2.4.10_resque2_redis3.gemfile.lock
index 38017b9eed3..213f9609e43 100644
--- a/gemfiles/ruby_2.4.10_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_resque2_redis3.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.4.10_resque2_redis4.gemfile.lock b/gemfiles/ruby_2.4.10_resque2_redis4.gemfile.lock
index d4d0ba29db9..8793188695f 100644
--- a/gemfiles/ruby_2.4.10_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_2.4.10_resque2_redis4.gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_contrib.gemfile.lock b/gemfiles/ruby_2.5.9_contrib.gemfile.lock
index fb02737b8f5..adbae7a3c08 100644
--- a/gemfiles/ruby_2.5.9_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_contrib.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -1496,6 +1496,8 @@ GEM
     rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
+    rack-contrib (2.3.0)
+      rack (~> 2.0)
     rack-protection (2.2.0)
       rack
     rack-test (1.1.0)
@@ -1700,6 +1702,7 @@ DEPENDENCIES
   que (>= 1.0.0)
   racecar (>= 0.3.5)
   rack
+  rack-contrib
   rack-test
   rake (>= 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
diff --git a/gemfiles/ruby_2.5.9_contrib_old.gemfile.lock b/gemfiles/ruby_2.5.9_contrib_old.gemfile.lock
index d0d92c244bf..05cea07f88f 100644
--- a/gemfiles/ruby_2.5.9_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_contrib_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_core_old.gemfile.lock b/gemfiles/ruby_2.5.9_core_old.gemfile.lock
index 5d60f2b2144..2727d969991 100644
--- a/gemfiles/ruby_2.5.9_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_core_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_cucumber3.gemfile.lock b/gemfiles/ruby_2.5.9_cucumber3.gemfile.lock
index 64d2ad991e8..0db460da7c5 100644
--- a/gemfiles/ruby_2.5.9_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_cucumber3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_cucumber4.gemfile.lock b/gemfiles/ruby_2.5.9_cucumber4.gemfile.lock
index 10a0d048d80..3d24e321415 100644
--- a/gemfiles/ruby_2.5.9_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_cucumber4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_cucumber5.gemfile.lock b/gemfiles/ruby_2.5.9_cucumber5.gemfile.lock
index 785aced901f..5abd5713f62 100644
--- a/gemfiles/ruby_2.5.9_cucumber5.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_cucumber5.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails5_mysql2.gemfile.lock b/gemfiles/ruby_2.5.9_rails5_mysql2.gemfile.lock
index c9c9a845fd9..2c42f52e27a 100644
--- a/gemfiles/ruby_2.5.9_rails5_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails5_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails5_postgres.gemfile.lock b/gemfiles/ruby_2.5.9_rails5_postgres.gemfile.lock
index 7105083969a..6a851b6c1db 100644
--- a/gemfiles/ruby_2.5.9_rails5_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails5_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile.lock b/gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile.lock
index 4c0f7736a19..091281a0e76 100644
--- a/gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock
index 805a8a322c0..3726f5d9e0c 100644
--- a/gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock
index 448faf9dff8..3be75df5e41 100644
--- a/gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock b/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock
index 71db2c547ea..faad5151396 100644
--- a/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails61_mysql2.gemfile.lock b/gemfiles/ruby_2.5.9_rails61_mysql2.gemfile.lock
index a26b563a4d4..8e339f70296 100644
--- a/gemfiles/ruby_2.5.9_rails61_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails61_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails61_postgres.gemfile.lock b/gemfiles/ruby_2.5.9_rails61_postgres.gemfile.lock
index af7bc199d49..9b040b8105f 100644
--- a/gemfiles/ruby_2.5.9_rails61_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails61_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile.lock b/gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile.lock
index f799d0308ad..c194bd0390b 100644
--- a/gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock
index affcc4c59a9..203fc0f6e96 100644
--- a/gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock b/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock
index 8b94575554a..c719c0426ae 100644
--- a/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails6_mysql2.gemfile.lock b/gemfiles/ruby_2.5.9_rails6_mysql2.gemfile.lock
index 7b0f888749b..3762126492b 100644
--- a/gemfiles/ruby_2.5.9_rails6_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails6_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails6_postgres.gemfile.lock b/gemfiles/ruby_2.5.9_rails6_postgres.gemfile.lock
index 3618ef6a4a4..3d3cdf324b9 100644
--- a/gemfiles/ruby_2.5.9_rails6_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails6_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile.lock b/gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile.lock
index 21ed06d6ae3..7958cec1cb9 100644
--- a/gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock
index 030ea3a52f8..fb3411caf19 100644
--- a/gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock
index abbdaf69fa9..ed8b538fd8f 100644
--- a/gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock b/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock
index 06d47523c68..5737be4d946 100644
--- a/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_resque2_redis3.gemfile.lock b/gemfiles/ruby_2.5.9_resque2_redis3.gemfile.lock
index dc50ffeedcb..3fc108f7ead 100644
--- a/gemfiles/ruby_2.5.9_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_resque2_redis3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.5.9_resque2_redis4.gemfile.lock b/gemfiles/ruby_2.5.9_resque2_redis4.gemfile.lock
index 601ef4b5175..6e7476ef8d5 100644
--- a/gemfiles/ruby_2.5.9_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_2.5.9_resque2_redis4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_contrib.gemfile.lock b/gemfiles/ruby_2.6.7_contrib.gemfile.lock
index be2313b104c..1c324f44dc7 100644
--- a/gemfiles/ruby_2.6.7_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_contrib.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -1498,6 +1498,8 @@ GEM
     rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
+    rack-contrib (2.3.0)
+      rack (~> 2.0)
     rack-protection (2.2.0)
       rack
     rack-test (1.1.0)
@@ -1701,6 +1703,7 @@ DEPENDENCIES
   que (>= 1.0.0)
   racecar (>= 0.3.5)
   rack
+  rack-contrib
   rack-test
   rake (>= 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
diff --git a/gemfiles/ruby_2.6.7_contrib_old.gemfile.lock b/gemfiles/ruby_2.6.7_contrib_old.gemfile.lock
index 05ce8e36ed9..8a2bb50f91c 100644
--- a/gemfiles/ruby_2.6.7_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_contrib_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_core_old.gemfile.lock b/gemfiles/ruby_2.6.7_core_old.gemfile.lock
index 6ffc8773a6e..c2a91757d35 100644
--- a/gemfiles/ruby_2.6.7_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_core_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_cucumber3.gemfile.lock b/gemfiles/ruby_2.6.7_cucumber3.gemfile.lock
index b8f42ce9f6a..b80ef4ac13a 100644
--- a/gemfiles/ruby_2.6.7_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_cucumber3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_cucumber4.gemfile.lock b/gemfiles/ruby_2.6.7_cucumber4.gemfile.lock
index 8308ff5fba7..589c5e9e69a 100644
--- a/gemfiles/ruby_2.6.7_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_cucumber4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_cucumber5.gemfile.lock b/gemfiles/ruby_2.6.7_cucumber5.gemfile.lock
index b5698a89944..157187b11f0 100644
--- a/gemfiles/ruby_2.6.7_cucumber5.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_cucumber5.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock b/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock
index 1dc8e0b2568..9444d7c1676 100644
--- a/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails5_postgres.gemfile.lock b/gemfiles/ruby_2.6.7_rails5_postgres.gemfile.lock
index 952963d8dd9..5edffa6a9a9 100644
--- a/gemfiles/ruby_2.6.7_rails5_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails5_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile.lock b/gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile.lock
index 6d08b9ac029..22d281af145 100644
--- a/gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock
index c1333b07826..08f533acdca 100644
--- a/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock
index f407110fa69..3b834bd43c0 100644
--- a/gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock b/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock
index 24a4f4c780e..f653a284c40 100644
--- a/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock b/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock
index c0ac4f95975..1f877f76a14 100644
--- a/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock b/gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock
index ec9b95599e2..4a0adc704f1 100644
--- a/gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock b/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock
index 47812bb5fab..facdda5a9dc 100644
--- a/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock
index 5a55829e104..1d026e84dca 100644
--- a/gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock b/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock
index ab5797239e5..de2ccd6b066 100644
--- a/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock b/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock
index 960c6182613..8d60c0a9a76 100644
--- a/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock b/gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock
index cb1e0ba6948..9fffe9399c5 100644
--- a/gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile.lock b/gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile.lock
index e309e8ed239..ae8d37dc227 100644
--- a/gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock
index de9d071312e..24d309e9449 100644
--- a/gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock
index bd79c823d01..c5d1df700e1 100644
--- a/gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock b/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock
index 4a438791f71..3080b305c45 100644
--- a/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock b/gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock
index d8eff6b1fe5..818fcecefa7 100644
--- a/gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock b/gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock
index bae97c9c101..3d226181d4c 100644
--- a/gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.7.3_contrib.gemfile.lock b/gemfiles/ruby_2.7.3_contrib.gemfile.lock
index 976f10f7b55..ef5e3c65c7d 100644
--- a/gemfiles/ruby_2.7.3_contrib.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_contrib.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -1436,8 +1436,8 @@ GEM
       addressable (>= 2.4)
     jsonapi-renderer (0.2.2)
     king_konf (1.0.0)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
@@ -1498,6 +1498,8 @@ GEM
     rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
+    rack-contrib (2.3.0)
+      rack (~> 2.0)
     rack-protection (2.2.0)
       rack
     rack-test (1.1.0)
@@ -1698,6 +1700,7 @@ DEPENDENCIES
   que (>= 1.0.0)
   racecar (>= 0.3.5)
   rack
+  rack-contrib
   rack-test
   rake (>= 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
diff --git a/gemfiles/ruby_2.7.3_contrib_old.gemfile.lock b/gemfiles/ruby_2.7.3_contrib_old.gemfile.lock
index 59e11cc8537..1bc913f7015 100644
--- a/gemfiles/ruby_2.7.3_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_contrib_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -64,8 +64,8 @@ GEM
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_core_old.gemfile.lock b/gemfiles/ruby_2.7.3_core_old.gemfile.lock
index 7b07e74bbdb..4f7a44edaca 100644
--- a/gemfiles/ruby_2.7.3_core_old.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_core_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -50,8 +50,8 @@ GEM
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_cucumber3.gemfile.lock b/gemfiles/ruby_2.7.3_cucumber3.gemfile.lock
index 8c1c82f1719..19426351f63 100644
--- a/gemfiles/ruby_2.7.3_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_cucumber3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -68,8 +68,8 @@ GEM
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_cucumber4.gemfile.lock b/gemfiles/ruby_2.7.3_cucumber4.gemfile.lock
index 3eb03d2bd7e..d94a6821a80 100644
--- a/gemfiles/ruby_2.7.3_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_cucumber4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -88,8 +88,8 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_cucumber5.gemfile.lock b/gemfiles/ruby_2.7.3_cucumber5.gemfile.lock
index dff2757f313..ee089283a27 100644
--- a/gemfiles/ruby_2.7.3_cucumber5.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_cucumber5.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -88,8 +88,8 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_rails5_mysql2.gemfile.lock b/gemfiles/ruby_2.7.3_rails5_mysql2.gemfile.lock
index 76e0e13668a..409b005a6b6 100644
--- a/gemfiles/ruby_2.7.3_rails5_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails5_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -98,8 +98,8 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails5_postgres.gemfile.lock b/gemfiles/ruby_2.7.3_rails5_postgres.gemfile.lock
index f19eaf7bf4b..c8190227ff3 100644
--- a/gemfiles/ruby_2.7.3_rails5_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails5_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -98,8 +98,8 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile.lock b/gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile.lock
index b6eda2510d0..dd5425eabd7 100644
--- a/gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -98,8 +98,8 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock
index dd30e57b519..7f26b250f23 100644
--- a/gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -98,8 +98,8 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock
index 224df608934..71b316c724d 100644
--- a/gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -99,8 +99,8 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock b/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock
index e306b9d51f1..7d62b30fba2 100644
--- a/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -98,8 +98,8 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     loofah (2.15.0)
       crass (~> 1.0.2)
diff --git a/gemfiles/ruby_2.7.3_rails61_mysql2.gemfile.lock b/gemfiles/ruby_2.7.3_rails61_mysql2.gemfile.lock
index e6c12c52f5a..18cb60e8540 100644
--- a/gemfiles/ruby_2.7.3_rails61_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails61_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -115,8 +115,8 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails61_postgres.gemfile.lock b/gemfiles/ruby_2.7.3_rails61_postgres.gemfile.lock
index 676ee7a2cf0..4f1e4043233 100644
--- a/gemfiles/ruby_2.7.3_rails61_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails61_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -115,8 +115,8 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile.lock b/gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile.lock
index 263e2c92be7..87d83134b9c 100644
--- a/gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock
index b5e6c4f44d4..2626207ca1a 100644
--- a/gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock b/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock
index 44fbf36dd50..cb44c4d0cde 100644
--- a/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.7.3_rails6_mysql2.gemfile.lock b/gemfiles/ruby_2.7.3_rails6_mysql2.gemfile.lock
index f81f560a856..460dd6962b2 100644
--- a/gemfiles/ruby_2.7.3_rails6_mysql2.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails6_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -111,8 +111,8 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     lograge (0.11.2)
       actionpack (>= 4)
diff --git a/gemfiles/ruby_2.7.3_rails6_postgres.gemfile.lock b/gemfiles/ruby_2.7.3_rails6_postgres.gemfile.lock
index 8f7ac45333f..d7aacf69e05 100644
--- a/gemfiles/ruby_2.7.3_rails6_postgres.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails6_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile.lock b/gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile.lock
index 80f8249ed80..c78fbb44d2c 100644
--- a/gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock b/gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock
index a5dfd73eb94..6a27b073bf9 100644
--- a/gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock
index 34fa9de83ae..4c6caaaeeb2 100644
--- a/gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock b/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock
index 783eb92a17e..89ece93e984 100644
--- a/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_2.7.3_resque2_redis3.gemfile.lock b/gemfiles/ruby_2.7.3_resque2_redis3.gemfile.lock
index 8aa828d7643..70eb83dce3a 100644
--- a/gemfiles/ruby_2.7.3_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_resque2_redis3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -50,8 +50,8 @@ GEM
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    libdatadog (0.7.0.1.1-x86_64-linux)
-    libddwaf (1.5.1.0.0-x86_64-linux)
+    libdatadog (0.7.0.1.1)
+    libddwaf (1.5.1.0.0)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
diff --git a/gemfiles/ruby_2.7.3_resque2_redis4.gemfile.lock b/gemfiles/ruby_2.7.3_resque2_redis4.gemfile.lock
index 8ccefeb1fba..0a7016abb67 100644
--- a/gemfiles/ruby_2.7.3_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_2.7.3_resque2_redis4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
diff --git a/gemfiles/ruby_3.0.3_contrib.gemfile.lock b/gemfiles/ruby_3.0.3_contrib.gemfile.lock
index 217256020c3..b52560d33e3 100644
--- a/gemfiles/ruby_3.0.3_contrib.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_contrib.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -1447,7 +1447,10 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     jsonapi-renderer (0.2.2)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
@@ -1520,6 +1523,8 @@ GEM
     rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
+    rack-contrib (2.3.0)
+      rack (~> 2.0)
     rack-protection (2.0.8.1)
       rack
     rack-test (1.1.0)
@@ -1717,6 +1722,7 @@ DEPENDENCIES
   qless
   que (>= 1.0.0)
   rack
+  rack-contrib
   rack-test
   rake (>= 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
diff --git a/gemfiles/ruby_3.0.3_contrib_old.gemfile.lock b/gemfiles/ruby_3.0.3_contrib_old.gemfile.lock
index 5915f43a57c..db8f2385ddc 100644
--- a/gemfiles/ruby_3.0.3_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_contrib_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -65,7 +65,10 @@ GEM
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
diff --git a/gemfiles/ruby_3.0.3_core_old.gemfile.lock b/gemfiles/ruby_3.0.3_core_old.gemfile.lock
index 439efdff7f6..84d3cd9a193 100644
--- a/gemfiles/ruby_3.0.3_core_old.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_core_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -51,7 +51,10 @@ GEM
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
diff --git a/gemfiles/ruby_3.0.3_cucumber3.gemfile.lock b/gemfiles/ruby_3.0.3_cucumber3.gemfile.lock
index 962182f015a..cf6035e3f48 100644
--- a/gemfiles/ruby_3.0.3_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_cucumber3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -69,7 +69,10 @@ GEM
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
diff --git a/gemfiles/ruby_3.0.3_cucumber4.gemfile.lock b/gemfiles/ruby_3.0.3_cucumber4.gemfile.lock
index a3501364264..fcf195b5f7b 100644
--- a/gemfiles/ruby_3.0.3_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_cucumber4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -89,7 +89,10 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
diff --git a/gemfiles/ruby_3.0.3_cucumber5.gemfile.lock b/gemfiles/ruby_3.0.3_cucumber5.gemfile.lock
index d0b29cc8405..c25cd680f46 100644
--- a/gemfiles/ruby_3.0.3_cucumber5.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_cucumber5.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -89,7 +89,10 @@ GEM
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
diff --git a/gemfiles/ruby_3.0.3_rails61_mysql2.gemfile.lock b/gemfiles/ruby_3.0.3_rails61_mysql2.gemfile.lock
index 9f229f2f751..55b9442e6c8 100644
--- a/gemfiles/ruby_3.0.3_rails61_mysql2.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_rails61_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -118,7 +118,10 @@ GEM
     io-wait (0.2.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
diff --git a/gemfiles/ruby_3.0.3_rails61_postgres.gemfile.lock b/gemfiles/ruby_3.0.3_rails61_postgres.gemfile.lock
index b7df0f102df..7abc7d090e4 100644
--- a/gemfiles/ruby_3.0.3_rails61_postgres.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_rails61_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -118,7 +118,10 @@ GEM
     io-wait (0.2.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
diff --git a/gemfiles/ruby_3.0.3_rails61_postgres_redis.gemfile.lock b/gemfiles/ruby_3.0.3_rails61_postgres_redis.gemfile.lock
index 3c1c812f36d..b9312dc34f6 100644
--- a/gemfiles/ruby_3.0.3_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_rails61_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -118,7 +118,10 @@ GEM
     io-wait (0.2.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
diff --git a/gemfiles/ruby_3.0.3_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_3.0.3_rails61_postgres_sidekiq.gemfile.lock
index 30aca29f921..c5717a15772 100644
--- a/gemfiles/ruby_3.0.3_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_rails61_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -119,7 +119,10 @@ GEM
     io-wait (0.2.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
diff --git a/gemfiles/ruby_3.0.3_rails61_semantic_logger.gemfile.lock b/gemfiles/ruby_3.0.3_rails61_semantic_logger.gemfile.lock
index edc49c4223e..21e6091826f 100644
--- a/gemfiles/ruby_3.0.3_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_rails61_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -118,7 +118,10 @@ GEM
     io-wait (0.2.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
diff --git a/gemfiles/ruby_3.0.3_resque2_redis3.gemfile.lock b/gemfiles/ruby_3.0.3_resque2_redis3.gemfile.lock
index 719954a2eaf..1594b7c148c 100644
--- a/gemfiles/ruby_3.0.3_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_resque2_redis3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -51,7 +51,10 @@ GEM
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
diff --git a/gemfiles/ruby_3.0.3_resque2_redis4.gemfile.lock b/gemfiles/ruby_3.0.3_resque2_redis4.gemfile.lock
index 110ea0fd868..fa0dace3d76 100644
--- a/gemfiles/ruby_3.0.3_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_3.0.3_resque2_redis4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -51,7 +51,10 @@ GEM
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
diff --git a/gemfiles/ruby_3.1.1_contrib.gemfile.lock b/gemfiles/ruby_3.1.1_contrib.gemfile.lock
index 4f3e358d703..53e653a324d 100644
--- a/gemfiles/ruby_3.1.1_contrib.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_contrib.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -1407,7 +1407,8 @@ GEM
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
       rake
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     googleapis-common-protos-types (1.3.0)
       google-protobuf (~> 3.14)
     grape (1.6.2)
@@ -1418,7 +1419,10 @@ GEM
       rack (>= 1.3.0)
       rack-accept
     graphql (2.0.6)
-    grpc (1.45.0)
+    grpc (1.46.3)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
+    grpc (1.46.3-x86_64-linux)
       google-protobuf (~> 3.19)
       googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
@@ -1443,7 +1447,10 @@ GEM
     json-schema (2.8.1)
       addressable (>= 2.4)
     jsonapi-renderer (0.2.2)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
@@ -1481,6 +1488,8 @@ GEM
       net-protocol
       timeout
     netrc (0.11.0)
+    nokogiri (1.13.3-aarch64-linux)
+      racc (~> 1.4)
     nokogiri (1.13.3-x86_64-linux)
       racc (~> 1.4)
     opentracing (0.5.0)
@@ -1514,6 +1523,8 @@ GEM
     rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
+    rack-contrib (2.3.0)
+      rack (~> 2.0)
     rack-protection (2.0.8.1)
       rack
     rack-test (1.1.0)
@@ -1663,6 +1674,7 @@ GEM
       webrick (~> 1.7.0)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
@@ -1710,6 +1722,7 @@ DEPENDENCIES
   qless
   que (>= 1.0.0)
   rack
+  rack-contrib
   rack-test
   rake (>= 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
diff --git a/gemfiles/ruby_3.1.1_contrib_old.gemfile.lock b/gemfiles/ruby_3.1.1_contrib_old.gemfile.lock
index 49a0addb60f..84308639d39 100644
--- a/gemfiles/ruby_3.1.1_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_contrib_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -59,12 +59,16 @@ GEM
     faraday_middleware (0.12.2)
       faraday (>= 0.7.4, < 1.0)
     ffi (1.15.5)
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     graphql (1.12.24)
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
@@ -160,6 +164,7 @@ GEM
       webrick (~> 1.7.0)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
diff --git a/gemfiles/ruby_3.1.1_core_old.gemfile.lock b/gemfiles/ruby_3.1.1_core_old.gemfile.lock
index 5bef6ad0adb..ddc92ad011a 100644
--- a/gemfiles/ruby_3.1.1_core_old.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_core_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,11 +46,15 @@ GEM
     docile (1.4.0)
     dogstatsd-ruby (4.8.3)
     ffi (1.15.5)
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
@@ -140,6 +144,7 @@ GEM
       webrick (~> 1.7.0)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
diff --git a/gemfiles/ruby_3.1.1_cucumber3.gemfile.lock b/gemfiles/ruby_3.1.1_cucumber3.gemfile.lock
index 2e8e1f90e6b..a74ac04a05e 100644
--- a/gemfiles/ruby_3.1.1_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_cucumber3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -64,11 +64,15 @@ GEM
     dogstatsd-ruby (5.4.0)
     ffi (1.15.5)
     gherkin (5.1.0)
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
@@ -160,6 +164,7 @@ GEM
       webrick (~> 1.7.0)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
diff --git a/gemfiles/ruby_3.1.1_cucumber4.gemfile.lock b/gemfiles/ruby_3.1.1_cucumber4.gemfile.lock
index 9e5525f9c51..7398eebc390 100644
--- a/gemfiles/ruby_3.1.1_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_cucumber4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -82,13 +82,17 @@ GEM
     docile (1.4.0)
     dogstatsd-ruby (5.4.0)
     ffi (1.15.5)
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
@@ -191,6 +195,7 @@ GEM
       webrick (~> 1.7.0)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
diff --git a/gemfiles/ruby_3.1.1_cucumber5.gemfile.lock b/gemfiles/ruby_3.1.1_cucumber5.gemfile.lock
index e66d32129e0..b4b3db4c62f 100644
--- a/gemfiles/ruby_3.1.1_cucumber5.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_cucumber5.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -82,13 +82,17 @@ GEM
     docile (1.4.0)
     dogstatsd-ruby (5.4.0)
     ffi (1.15.5)
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
@@ -191,6 +195,7 @@ GEM
       webrick (~> 1.7.0)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
diff --git a/gemfiles/ruby_3.1.1_rails61_mysql2.gemfile.lock b/gemfiles/ruby_3.1.1_rails61_mysql2.gemfile.lock
index 23c1b57453b..917e4c30503 100644
--- a/gemfiles/ruby_3.1.1_rails61_mysql2.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_rails61_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -110,14 +110,18 @@ GEM
     ffi (1.15.5)
     globalid (1.0.0)
       activesupport (>= 5.0)
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
     io-wait (0.2.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
@@ -145,6 +149,8 @@ GEM
       net-protocol
       timeout
     nio4r (2.5.8)
+    nokogiri (1.13.3-aarch64-linux)
+      racc (~> 1.4)
     nokogiri (1.13.3-x86_64-linux)
       racc (~> 1.4)
     opentracing (0.5.0)
@@ -277,6 +283,7 @@ GEM
     zeitwerk (2.5.4)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
diff --git a/gemfiles/ruby_3.1.1_rails61_postgres.gemfile.lock b/gemfiles/ruby_3.1.1_rails61_postgres.gemfile.lock
index 503ec4e6302..b47fcd72f41 100644
--- a/gemfiles/ruby_3.1.1_rails61_postgres.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_rails61_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -110,14 +110,18 @@ GEM
     ffi (1.15.5)
     globalid (1.0.0)
       activesupport (>= 5.0)
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
     io-wait (0.2.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
@@ -144,6 +148,8 @@ GEM
       net-protocol
       timeout
     nio4r (2.5.8)
+    nokogiri (1.13.3-aarch64-linux)
+      racc (~> 1.4)
     nokogiri (1.13.3-x86_64-linux)
       racc (~> 1.4)
     opentracing (0.5.0)
@@ -277,6 +283,7 @@ GEM
     zeitwerk (2.5.4)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
diff --git a/gemfiles/ruby_3.1.1_rails61_postgres_redis.gemfile.lock b/gemfiles/ruby_3.1.1_rails61_postgres_redis.gemfile.lock
index e6fc97da50f..0fd06d86b98 100644
--- a/gemfiles/ruby_3.1.1_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_rails61_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -110,14 +110,18 @@ GEM
     ffi (1.15.5)
     globalid (1.0.0)
       activesupport (>= 5.0)
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
     io-wait (0.2.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
@@ -144,6 +148,8 @@ GEM
       net-protocol
       timeout
     nio4r (2.5.8)
+    nokogiri (1.13.3-aarch64-linux)
+      racc (~> 1.4)
     nokogiri (1.13.3-x86_64-linux)
       racc (~> 1.4)
     opentracing (0.5.0)
@@ -278,6 +284,7 @@ GEM
     zeitwerk (2.5.4)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
diff --git a/gemfiles/ruby_3.1.1_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_3.1.1_rails61_postgres_sidekiq.gemfile.lock
index 6fe0845d28c..ea4ea6713c7 100644
--- a/gemfiles/ruby_3.1.1_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_rails61_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -111,14 +111,18 @@ GEM
     ffi (1.15.5)
     globalid (1.0.0)
       activesupport (>= 5.0)
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
     io-wait (0.2.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     lograge (0.11.2)
@@ -145,6 +149,8 @@ GEM
       net-protocol
       timeout
     nio4r (2.5.8)
+    nokogiri (1.13.3-aarch64-linux)
+      racc (~> 1.4)
     nokogiri (1.13.3-x86_64-linux)
       racc (~> 1.4)
     opentracing (0.5.0)
@@ -289,6 +295,7 @@ GEM
     zeitwerk (2.5.4)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
diff --git a/gemfiles/ruby_3.1.1_rails61_semantic_logger.gemfile.lock b/gemfiles/ruby_3.1.1_rails61_semantic_logger.gemfile.lock
index 931a79e30e1..ca09e7475e7 100644
--- a/gemfiles/ruby_3.1.1_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_rails61_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -110,14 +110,18 @@ GEM
     ffi (1.15.5)
     globalid (1.0.0)
       activesupport (>= 5.0)
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
     io-wait (0.2.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     loofah (2.15.0)
@@ -139,6 +143,8 @@ GEM
       net-protocol
       timeout
     nio4r (2.5.8)
+    nokogiri (1.13.3-aarch64-linux)
+      racc (~> 1.4)
     nokogiri (1.13.3-x86_64-linux)
       racc (~> 1.4)
     opentracing (0.5.0)
@@ -276,6 +282,7 @@ GEM
     zeitwerk (2.5.4)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
diff --git a/gemfiles/ruby_3.1.1_resque2_redis3.gemfile.lock b/gemfiles/ruby_3.1.1_resque2_redis3.gemfile.lock
index 582c9b4efa7..b8dd56b6fe9 100644
--- a/gemfiles/ruby_3.1.1_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_resque2_redis3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,11 +46,15 @@ GEM
     docile (1.4.0)
     dogstatsd-ruby (5.4.0)
     ffi (1.15.5)
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
@@ -162,6 +166,7 @@ GEM
       webrick (~> 1.7.0)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
diff --git a/gemfiles/ruby_3.1.1_resque2_redis4.gemfile.lock b/gemfiles/ruby_3.1.1_resque2_redis4.gemfile.lock
index 346fbeb5c7a..161f62d9166 100644
--- a/gemfiles/ruby_3.1.1_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_3.1.1_resque2_redis4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,11 +46,15 @@ GEM
     docile (1.4.0)
     dogstatsd-ruby (5.4.0)
     ffi (1.15.5)
-    google-protobuf (3.19.4)
+    google-protobuf (3.20.3)
+    google-protobuf (3.20.3-x86_64-linux)
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
+    libdatadog (0.7.0.1.1-aarch64-linux)
     libdatadog (0.7.0.1.1-x86_64-linux)
+    libddwaf (1.5.1.0.0-aarch64-linux)
+      ffi (~> 1.0)
     libddwaf (1.5.1.0.0-x86_64-linux)
       ffi (~> 1.0)
     memory_profiler (0.9.14)
@@ -162,6 +166,7 @@ GEM
       webrick (~> 1.7.0)
 
 PLATFORMS
+  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
diff --git a/gemfiles/ruby_3.2.0_contrib.gemfile.lock b/gemfiles/ruby_3.2.0_contrib.gemfile.lock
index c55ccd67f3d..9f7d37ed138 100644
--- a/gemfiles/ruby_3.2.0_contrib.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_contrib.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -1513,6 +1513,8 @@ GEM
     rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
+    rack-contrib (2.3.0)
+      rack (~> 2.0)
     rack-protection (2.0.8.1)
       rack
     rack-test (1.1.0)
@@ -1698,6 +1700,7 @@ DEPENDENCIES
   memory_profiler (~> 0.9)
   mongo (>= 2.8.0, < 2.15.0)
   net-smtp
+  nokogiri
   opentracing (>= 0.4.1)
   os (~> 1.1)
   pg (>= 1.1)
@@ -1707,6 +1710,7 @@ DEPENDENCIES
   qless
   que (>= 1.0.0)
   rack
+  rack-contrib
   rack-test
   rake (>= 12.3)
   rake-compiler (~> 1.1, >= 1.1.1)
diff --git a/gemfiles/ruby_3.2.0_contrib_old.gemfile.lock b/gemfiles/ruby_3.2.0_contrib_old.gemfile.lock
index a748504ac67..592f36f5ead 100644
--- a/gemfiles/ruby_3.2.0_contrib_old.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_contrib_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -59,7 +59,12 @@ GEM
       faraday (>= 0.7.4, < 1.0)
     ffi (1.15.5)
     google-protobuf (3.20.0)
+    googleapis-common-protos-types (1.4.0)
+      google-protobuf (~> 3.14)
     graphql (1.12.24)
+    grpc (1.48.0)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
@@ -172,6 +177,7 @@ DEPENDENCIES
   elasticsearch (< 8.0.0)
   google-protobuf (~> 3.0, != 3.7.1, != 3.7.0)
   graphql (>= 1.12.0, < 2.0)
+  grpc
   json-schema (< 3)
   memory_profiler (~> 0.9)
   opentracing (>= 0.4.1)
diff --git a/gemfiles/ruby_3.2.0_core_old.gemfile.lock b/gemfiles/ruby_3.2.0_core_old.gemfile.lock
index f3d964186ab..14cd703e0f8 100644
--- a/gemfiles/ruby_3.2.0_core_old.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_core_old.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,6 +46,11 @@ GEM
     dogstatsd-ruby (4.8.3)
     ffi (1.15.5)
     google-protobuf (3.20.0)
+    googleapis-common-protos-types (1.4.0)
+      google-protobuf (~> 3.14)
+    grpc (1.48.0)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
@@ -149,6 +154,7 @@ DEPENDENCIES
   ddtrace!
   dogstatsd-ruby (~> 4)
   google-protobuf (~> 3.0, != 3.7.1, != 3.7.0)
+  grpc
   json-schema (< 3)
   memory_profiler (~> 0.9)
   opentracing (>= 0.4.1)
diff --git a/gemfiles/ruby_3.2.0_cucumber3.gemfile.lock b/gemfiles/ruby_3.2.0_cucumber3.gemfile.lock
index 3737581f0f9..8c5ae79e196 100644
--- a/gemfiles/ruby_3.2.0_cucumber3.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_cucumber3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -64,6 +64,11 @@ GEM
     ffi (1.15.5)
     gherkin (5.1.0)
     google-protobuf (3.20.0)
+    googleapis-common-protos-types (1.4.0)
+      google-protobuf (~> 3.14)
+    grpc (1.48.0)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
@@ -72,9 +77,13 @@ GEM
       ffi (~> 1.0)
     memory_profiler (0.9.14)
     method_source (1.0.0)
+    mini_portile2 (2.8.0)
     msgpack (1.5.6)
     multi_json (1.15.0)
     multi_test (0.1.2)
+    nokogiri (1.13.4)
+      mini_portile2 (~> 2.8.0)
+      racc (~> 1.4)
     opentracing (0.5.0)
     os (1.1.4)
     parallel (1.22.1)
@@ -87,6 +96,7 @@ GEM
     pry-stack_explorer (0.6.1)
       binding_of_caller (~> 1.0)
       pry (~> 0.13)
+    racc (1.6.0)
     rainbow (3.1.1)
     rake (13.0.6)
     rake-compiler (1.1.9)
@@ -170,8 +180,10 @@ DEPENDENCIES
   ddtrace!
   dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0)
   google-protobuf (~> 3.0, != 3.7.1, != 3.7.0)
+  grpc
   json-schema (< 3)
   memory_profiler (~> 0.9)
+  nokogiri
   opentracing (>= 0.4.1)
   os (~> 1.1)
   pimpmychangelog (>= 0.1.2)
diff --git a/gemfiles/ruby_3.2.0_cucumber4.gemfile.lock b/gemfiles/ruby_3.2.0_cucumber4.gemfile.lock
index d6e5a47ee71..c3e727c85ce 100644
--- a/gemfiles/ruby_3.2.0_cucumber4.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_cucumber4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -82,6 +82,11 @@ GEM
     dogstatsd-ruby (5.4.0)
     ffi (1.15.5)
     google-protobuf (3.20.0)
+    googleapis-common-protos-types (1.4.0)
+      google-protobuf (~> 3.14)
+    grpc (1.48.0)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
@@ -93,9 +98,13 @@ GEM
     memory_profiler (0.9.14)
     method_source (1.0.0)
     middleware (0.1.0)
+    mini_portile2 (2.8.0)
     minitest (5.15.0)
     msgpack (1.5.6)
     multi_test (0.1.2)
+    nokogiri (1.13.4)
+      mini_portile2 (~> 2.8.0)
+      racc (~> 1.4)
     opentracing (0.5.0)
     os (1.1.4)
     parallel (1.22.1)
@@ -113,6 +122,7 @@ GEM
     pry-stack_explorer (0.6.1)
       binding_of_caller (~> 1.0)
       pry (~> 0.13)
+    racc (1.6.0)
     rainbow (3.1.1)
     rake (13.0.6)
     rake-compiler (1.1.9)
@@ -201,8 +211,10 @@ DEPENDENCIES
   ddtrace!
   dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0)
   google-protobuf (~> 3.0, != 3.7.1, != 3.7.0)
+  grpc
   json-schema (< 3)
   memory_profiler (~> 0.9)
+  nokogiri
   opentracing (>= 0.4.1)
   os (~> 1.1)
   pimpmychangelog (>= 0.1.2)
diff --git a/gemfiles/ruby_3.2.0_cucumber5.gemfile.lock b/gemfiles/ruby_3.2.0_cucumber5.gemfile.lock
index 85f966caa22..07ef37058a5 100644
--- a/gemfiles/ruby_3.2.0_cucumber5.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_cucumber5.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -82,6 +82,11 @@ GEM
     dogstatsd-ruby (5.4.0)
     ffi (1.15.5)
     google-protobuf (3.20.0)
+    googleapis-common-protos-types (1.4.0)
+      google-protobuf (~> 3.14)
+    grpc (1.48.0)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
@@ -93,9 +98,13 @@ GEM
     memory_profiler (0.9.14)
     method_source (1.0.0)
     middleware (0.1.0)
+    mini_portile2 (2.8.0)
     minitest (5.15.0)
     msgpack (1.5.6)
     multi_test (0.1.2)
+    nokogiri (1.13.4)
+      mini_portile2 (~> 2.8.0)
+      racc (~> 1.4)
     opentracing (0.5.0)
     os (1.1.4)
     parallel (1.22.1)
@@ -113,6 +122,7 @@ GEM
     pry-stack_explorer (0.6.1)
       binding_of_caller (~> 1.0)
       pry (~> 0.13)
+    racc (1.6.0)
     rainbow (3.1.1)
     rake (13.0.6)
     rake-compiler (1.1.9)
@@ -201,8 +211,10 @@ DEPENDENCIES
   ddtrace!
   dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0)
   google-protobuf (~> 3.0, != 3.7.1, != 3.7.0)
+  grpc
   json-schema (< 3)
   memory_profiler (~> 0.9)
+  nokogiri
   opentracing (>= 0.4.1)
   os (~> 1.1)
   pimpmychangelog (>= 0.1.2)
diff --git a/gemfiles/ruby_3.2.0_rails61_mysql2.gemfile.lock b/gemfiles/ruby_3.2.0_rails61_mysql2.gemfile.lock
index b6857d46495..e11063c3692 100644
--- a/gemfiles/ruby_3.2.0_rails61_mysql2.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_rails61_mysql2.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -110,6 +110,11 @@ GEM
     globalid (1.0.0)
       activesupport (>= 5.0)
     google-protobuf (3.20.0)
+    googleapis-common-protos-types (1.4.0)
+      google-protobuf (~> 3.14)
+    grpc (1.48.0)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
@@ -285,6 +290,7 @@ DEPENDENCIES
   ddtrace!
   dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0)
   google-protobuf (~> 3.0, != 3.7.1, != 3.7.0)
+  grpc
   json-schema (< 3)
   lograge (~> 0.11)
   memory_profiler (~> 0.9)
diff --git a/gemfiles/ruby_3.2.0_rails61_postgres.gemfile.lock b/gemfiles/ruby_3.2.0_rails61_postgres.gemfile.lock
index 7948e83b7ea..6d3829006ee 100644
--- a/gemfiles/ruby_3.2.0_rails61_postgres.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_rails61_postgres.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -110,6 +110,11 @@ GEM
     globalid (1.0.0)
       activesupport (>= 5.0)
     google-protobuf (3.20.0)
+    googleapis-common-protos-types (1.4.0)
+      google-protobuf (~> 3.14)
+    grpc (1.48.0)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
@@ -286,6 +291,7 @@ DEPENDENCIES
   ddtrace!
   dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0)
   google-protobuf (~> 3.0, != 3.7.1, != 3.7.0)
+  grpc
   json-schema (< 3)
   lograge (~> 0.11)
   memory_profiler (~> 0.9)
diff --git a/gemfiles/ruby_3.2.0_rails61_postgres_redis.gemfile.lock b/gemfiles/ruby_3.2.0_rails61_postgres_redis.gemfile.lock
index 0cfc5fc9598..90e72defb54 100644
--- a/gemfiles/ruby_3.2.0_rails61_postgres_redis.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_rails61_postgres_redis.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -110,6 +110,11 @@ GEM
     globalid (1.0.0)
       activesupport (>= 5.0)
     google-protobuf (3.20.0)
+    googleapis-common-protos-types (1.4.0)
+      google-protobuf (~> 3.14)
+    grpc (1.48.0)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
@@ -287,6 +292,7 @@ DEPENDENCIES
   ddtrace!
   dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0)
   google-protobuf (~> 3.0, != 3.7.1, != 3.7.0)
+  grpc
   json-schema (< 3)
   lograge (~> 0.11)
   memory_profiler (~> 0.9)
diff --git a/gemfiles/ruby_3.2.0_rails61_postgres_sidekiq.gemfile.lock b/gemfiles/ruby_3.2.0_rails61_postgres_sidekiq.gemfile.lock
index dc232375b07..70969269416 100644
--- a/gemfiles/ruby_3.2.0_rails61_postgres_sidekiq.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_rails61_postgres_sidekiq.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -111,6 +111,11 @@ GEM
     globalid (1.0.0)
       activesupport (>= 5.0)
     google-protobuf (3.20.0)
+    googleapis-common-protos-types (1.4.0)
+      google-protobuf (~> 3.14)
+    grpc (1.48.0)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
@@ -298,6 +303,7 @@ DEPENDENCIES
   ddtrace!
   dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0)
   google-protobuf (~> 3.0, != 3.7.1, != 3.7.0)
+  grpc
   json-schema (< 3)
   lograge (~> 0.11)
   memory_profiler (~> 0.9)
diff --git a/gemfiles/ruby_3.2.0_rails61_semantic_logger.gemfile.lock b/gemfiles/ruby_3.2.0_rails61_semantic_logger.gemfile.lock
index b4f0aa89bf1..1b3943cfa5a 100644
--- a/gemfiles/ruby_3.2.0_rails61_semantic_logger.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_rails61_semantic_logger.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -110,6 +110,11 @@ GEM
     globalid (1.0.0)
       activesupport (>= 5.0)
     google-protobuf (3.20.0)
+    googleapis-common-protos-types (1.4.0)
+      google-protobuf (~> 3.14)
+    grpc (1.48.0)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
     i18n (1.10.0)
       concurrent-ruby (~> 1.0)
@@ -285,6 +290,7 @@ DEPENDENCIES
   ddtrace!
   dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0)
   google-protobuf (~> 3.0, != 3.7.1, != 3.7.0)
+  grpc
   json-schema (< 3)
   memory_profiler (~> 0.9)
   net-smtp
diff --git a/gemfiles/ruby_3.2.0_resque2_redis3.gemfile.lock b/gemfiles/ruby_3.2.0_resque2_redis3.gemfile.lock
index b0d085f612c..3a72a30af43 100644
--- a/gemfiles/ruby_3.2.0_resque2_redis3.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_resque2_redis3.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,6 +46,11 @@ GEM
     dogstatsd-ruby (5.4.0)
     ffi (1.15.5)
     google-protobuf (3.20.0)
+    googleapis-common-protos-types (1.4.0)
+      google-protobuf (~> 3.14)
+    grpc (1.48.0)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
@@ -171,6 +176,7 @@ DEPENDENCIES
   ddtrace!
   dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0)
   google-protobuf (~> 3.0, != 3.7.1, != 3.7.0)
+  grpc
   json-schema (< 3)
   memory_profiler (~> 0.9)
   opentracing (>= 0.4.1)
diff --git a/gemfiles/ruby_3.2.0_resque2_redis4.gemfile.lock b/gemfiles/ruby_3.2.0_resque2_redis4.gemfile.lock
index ab732ddedbc..55f4a6b9047 100644
--- a/gemfiles/ruby_3.2.0_resque2_redis4.gemfile.lock
+++ b/gemfiles/ruby_3.2.0_resque2_redis4.gemfile.lock
@@ -12,7 +12,7 @@ PATH
   remote: ..
   specs:
     ddtrace (1.5.0)
-      debase-ruby_core_source (= 0.10.16)
+      debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
       libdatadog (~> 0.7.0.1.1)
       libddwaf (~> 1.5.1.0.0)
       msgpack
@@ -46,6 +46,11 @@ GEM
     dogstatsd-ruby (5.4.0)
     ffi (1.15.5)
     google-protobuf (3.20.0)
+    googleapis-common-protos-types (1.4.0)
+      google-protobuf (~> 3.14)
+    grpc (1.48.0)
+      google-protobuf (~> 3.19)
+      googleapis-common-protos-types (~> 1.0)
     hashdiff (1.0.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
@@ -171,6 +176,7 @@ DEPENDENCIES
   ddtrace!
   dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0)
   google-protobuf (~> 3.0, != 3.7.1, != 3.7.0)
+  grpc
   json-schema (< 3)
   memory_profiler (~> 0.9)
   opentracing (>= 0.4.1)

From 23f77fd798d38959125981cd381918971ba2c719 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 21:03:14 +0200
Subject: [PATCH 08/27] Support verbs beyond GET in Rails test app routes

---
 spec/datadog/tracing/contrib/rails/support/rails3.rb | 6 +++++-
 spec/datadog/tracing/contrib/rails/support/rails4.rb | 6 +++++-
 spec/datadog/tracing/contrib/rails/support/rails5.rb | 6 +++++-
 spec/datadog/tracing/contrib/rails/support/rails6.rb | 6 +++++-
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/spec/datadog/tracing/contrib/rails/support/rails3.rb b/spec/datadog/tracing/contrib/rails/support/rails3.rb
index 3b1ab8ab165..0c4bc32eea8 100644
--- a/spec/datadog/tracing/contrib/rails/support/rails3.rb
+++ b/spec/datadog/tracing/contrib/rails/support/rails3.rb
@@ -99,7 +99,11 @@ def draw_test_routes!(mapper)
     test_routes = routes
     mapper.instance_exec do
       test_routes.each do |k, v|
-        get k => v
+        if k.is_a?(Array)
+          send(k.first, k.last => v)
+        else
+          get k => v
+        end
       end
     end
     @drawn = true
diff --git a/spec/datadog/tracing/contrib/rails/support/rails4.rb b/spec/datadog/tracing/contrib/rails/support/rails4.rb
index 0e062f8383f..8a3879fd501 100644
--- a/spec/datadog/tracing/contrib/rails/support/rails4.rb
+++ b/spec/datadog/tracing/contrib/rails/support/rails4.rb
@@ -106,7 +106,11 @@ def draw_test_routes!(mapper)
     test_routes = routes
     mapper.instance_exec do
       test_routes.each do |k, v|
-        get k => v
+        if k.is_a?(Array)
+          send(k.first, k.last => v)
+        else
+          get k => v
+        end
       end
     end
     @drawn = true
diff --git a/spec/datadog/tracing/contrib/rails/support/rails5.rb b/spec/datadog/tracing/contrib/rails/support/rails5.rb
index 5eba2fbd2ca..79135731451 100644
--- a/spec/datadog/tracing/contrib/rails/support/rails5.rb
+++ b/spec/datadog/tracing/contrib/rails/support/rails5.rb
@@ -92,7 +92,11 @@ def append_routes!
 
     rails_test_application.instance.routes.append do
       test_routes.each do |k, v|
-        get k => v
+        if k.is_a?(Array)
+          send(k.first, k.last => v)
+        else
+          get k => v
+        end
       end
     end
   end
diff --git a/spec/datadog/tracing/contrib/rails/support/rails6.rb b/spec/datadog/tracing/contrib/rails/support/rails6.rb
index b125fa2b50f..c7e98fb6bf3 100644
--- a/spec/datadog/tracing/contrib/rails/support/rails6.rb
+++ b/spec/datadog/tracing/contrib/rails/support/rails6.rb
@@ -116,7 +116,11 @@ def append_routes!
 
     rails_test_application.instance.routes.append do
       test_routes.each do |k, v|
-        get k => v
+        if k.is_a?(Array)
+          send(k.first, k.last => v)
+        else
+          get k => v
+        end
       end
     end
 

From 1f4d18a45d491a1db07adb748b2a52171241dc28 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 21:10:58 +0200
Subject: [PATCH 09/27] Set appsec.event tag when span is still active

Previoulsy setting the tag would work but the change would be silently
dropped, resulting in the change being absent from the final trace.
---
 lib/datadog/appsec/contrib/rack/gateway/watcher.rb    | 6 ++++++
 lib/datadog/appsec/contrib/rails/gateway/watcher.rb   | 2 ++
 lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb | 4 ++++
 lib/datadog/appsec/event.rb                           | 4 ----
 4 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/lib/datadog/appsec/contrib/rack/gateway/watcher.rb b/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
index 00e3d97017d..e25d65e2606 100644
--- a/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
@@ -38,6 +38,8 @@ def self.watch
                         actions: result.actions
                       }
 
+                      span.set_tag('appsec.event', 'true') if span
+
                       waf_context.events << event
                     end
                   end
@@ -78,6 +80,8 @@ def self.watch
                         actions: result.actions
                       }
 
+                      span.set_tag('appsec.event', 'true') if span
+
                       waf_context.events << event
                     end
                   end
@@ -118,6 +122,8 @@ def self.watch
                         actions: result.actions
                       }
 
+                      span.set_tag('appsec.event', 'true') if span
+
                       waf_context.events << event
                     end
                   end
diff --git a/lib/datadog/appsec/contrib/rails/gateway/watcher.rb b/lib/datadog/appsec/contrib/rails/gateway/watcher.rb
index e6d129eb732..bd84a42332f 100644
--- a/lib/datadog/appsec/contrib/rails/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/rails/gateway/watcher.rb
@@ -34,6 +34,8 @@ def self.watch
                         actions: result.actions
                       }
 
+                      span.set_tag('appsec.event', 'true') if span
+
                       waf_context.events << event
                     end
                   end
diff --git a/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb b/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
index 0c200190440..bd0842ebefd 100644
--- a/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
@@ -36,6 +36,8 @@ def self.watch
                         actions: result.actions
                       }
 
+                      span.set_tag('appsec.event', 'true') if span
+
                       waf_context.events << event
                     end
                   end
@@ -76,6 +78,8 @@ def self.watch
                         actions: result.actions
                       }
 
+                      span.set_tag('appsec.event', 'true') if span
+
                       waf_context.events << event
                     end
                   end
diff --git a/lib/datadog/appsec/event.rb b/lib/datadog/appsec/event.rb
index 364809e8647..e23c06290d3 100644
--- a/lib/datadog/appsec/event.rb
+++ b/lib/datadog/appsec/event.rb
@@ -64,10 +64,6 @@ def self.record_via_span(*events)
 
           # prepare and gather tags to apply
           trace_tags = event_group.each_with_object({}) do |event, tags|
-            span = event[:span]
-
-            span.set_tag('appsec.event', 'true') if span
-
             # TODO: assume HTTP request context for now
 
             if (request = event[:request])

From 4d881c5facc91c26b3ea65d6017ff8a417a163fd Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 21:13:56 +0200
Subject: [PATCH 10/27] Make instrumentation gateway idempotent

Prevents accumulation of instrumentation middlewares if multiple
configure blocks are being called, like over app hot-reloading (e.g
Rails development mode, which rereads initializers) or across a sequence
of examples within a spec suite.

Since watchers are essentially static, they need only to be set up once
per process, ever.
---
 .../appsec/contrib/rack/gateway/watcher.rb     |  6 +++---
 .../appsec/contrib/rails/gateway/watcher.rb    |  2 +-
 .../appsec/contrib/sinatra/gateway/watcher.rb  |  4 ++--
 lib/datadog/appsec/instrumentation/gateway.rb  | 18 ++++++++++++++++--
 4 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/lib/datadog/appsec/contrib/rack/gateway/watcher.rb b/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
index e25d65e2606..460fdec70a7 100644
--- a/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
@@ -17,7 +17,7 @@ module Watcher
             # rubocop:disable Metrics/AbcSize
             # rubocop:disable Metrics/MethodLength
             def self.watch
-              Instrumentation.gateway.watch('rack.request') do |stack, request|
+              Instrumentation.gateway.watch('rack.request', :appsec) do |stack, request|
                 block = false
                 event = nil
                 waf_context = request.env['datadog.waf.context']
@@ -59,7 +59,7 @@ def self.watch
                 [ret, res]
               end
 
-              Instrumentation.gateway.watch('rack.response') do |stack, response|
+              Instrumentation.gateway.watch('rack.response', :appsec) do |stack, response|
                 block = false
                 event = nil
                 waf_context = response.instance_eval { @waf_context }
@@ -101,7 +101,7 @@ def self.watch
                 [ret, res]
               end
 
-              Instrumentation.gateway.watch('rack.request.body') do |stack, request|
+              Instrumentation.gateway.watch('rack.request.body', :appsec) do |stack, request|
                 block = false
                 event = nil
                 waf_context = request.env['datadog.waf.context']
diff --git a/lib/datadog/appsec/contrib/rails/gateway/watcher.rb b/lib/datadog/appsec/contrib/rails/gateway/watcher.rb
index bd84a42332f..8df2e145f31 100644
--- a/lib/datadog/appsec/contrib/rails/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/rails/gateway/watcher.rb
@@ -13,7 +13,7 @@ module Gateway
           # Watcher for Rails gateway events
           module Watcher
             def self.watch
-              Instrumentation.gateway.watch('rails.request.action') do |stack, request|
+              Instrumentation.gateway.watch('rails.request.action', :appsec) do |stack, request|
                 block = false
                 event = nil
                 waf_context = request.env['datadog.waf.context']
diff --git a/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb b/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
index bd0842ebefd..5652a767085 100644
--- a/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
@@ -15,7 +15,7 @@ module Gateway
           module Watcher
             # rubocop:disable Metrics/MethodLength
             def self.watch
-              Instrumentation.gateway.watch('sinatra.request.dispatch') do |stack, request|
+              Instrumentation.gateway.watch('sinatra.request.dispatch', :appsec) do |stack, request|
                 block = false
                 event = nil
                 waf_context = request.env['datadog.waf.context']
@@ -57,7 +57,7 @@ def self.watch
                 [ret, res]
               end
 
-              Instrumentation.gateway.watch('sinatra.request.routed') do |stack, (request, route_params)|
+              Instrumentation.gateway.watch('sinatra.request.routed', :appsec) do |stack, (request, route_params)|
                 block = false
                 event = nil
                 waf_context = request.env['datadog.waf.context']
diff --git a/lib/datadog/appsec/instrumentation/gateway.rb b/lib/datadog/appsec/instrumentation/gateway.rb
index 3186da7bda0..20ca24946bf 100644
--- a/lib/datadog/appsec/instrumentation/gateway.rb
+++ b/lib/datadog/appsec/instrumentation/gateway.rb
@@ -6,6 +6,20 @@ module AppSec
     module Instrumentation
       # Instrumentation gateway implementation
       class Gateway
+        # Instrumentation gateway middleware
+        class Middleware
+          attr_reader :key, :block
+
+          def initialize(key, &block)
+            @key = key
+            @block = block
+          end
+
+          def call(*args, **kwargs, &block)
+            @block.call(*args, **kwargs, &block)
+          end
+        end
+
         def initialize
           @middlewares = Hash.new { |h, k| h[k] = [] }
         end
@@ -31,8 +45,8 @@ def push(name, env, &block)
           stack.call(env)
         end
 
-        def watch(name, &block)
-          @middlewares[name] << block
+        def watch(name, key, &block)
+          @middlewares[name] << Middleware.new(key, &block) unless @middlewares[name].any? { |m| m.key == key }
         end
       end
 

From b81054d53ab6e974e011209d311460460098a047 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 21:20:05 +0200
Subject: [PATCH 11/27] Make Rack and Rails parse known request bodies for
 AppSec analysis

Rack and Rails are lazily populating upon access. Depending on the
access pattern this may mean that body data would not be available to
AppSec for analysis. This is worked around by a call to the
side-effectful accessors.
---
 lib/datadog/appsec/contrib/rack/request.rb  | 3 +++
 lib/datadog/appsec/contrib/rails/request.rb | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/lib/datadog/appsec/contrib/rack/request.rb b/lib/datadog/appsec/contrib/rack/request.rb
index f2e31ae0959..9e119785827 100644
--- a/lib/datadog/appsec/contrib/rack/request.rb
+++ b/lib/datadog/appsec/contrib/rack/request.rb
@@ -47,6 +47,9 @@ def self.cookies(request)
           end
 
           def self.form_hash(request)
+            # force form data processing
+            request.POST if request.form_data?
+
             # usually Hash<String,String> but can be a more complex
             # Hash<String,String||Array||Hash> when e.g coming from JSON
             request.env['rack.request.form_hash']
diff --git a/lib/datadog/appsec/contrib/rails/request.rb b/lib/datadog/appsec/contrib/rails/request.rb
index ba31fa0a709..b8e63032633 100644
--- a/lib/datadog/appsec/contrib/rails/request.rb
+++ b/lib/datadog/appsec/contrib/rails/request.rb
@@ -7,6 +7,9 @@ module Rails
         # Normalized extration of data from ActionDispatch::Request
         module Request
           def self.parsed_body(request)
+            # force body parameter parsing, which is done lazily by Rails
+            request.parameters
+
             # usually Hash<String,String> but can be a more complex
             # Hash<String,String||Array||Hash> when e.g coming from JSON or
             # with Rails advanced param square bracket parsing

From f948cbbb1f54c4708c9edc0554e4dc20bc5e5b8e Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 21:26:16 +0200
Subject: [PATCH 12/27] Skip AppSec in a Rack context when AppSec is disabled

Consequently, context will not be set in Rack env, trickling down to
either disablement or enablement of other instrumented calls,
consistently for the whole request.
---
 lib/datadog/appsec/contrib/rack/request_middleware.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/datadog/appsec/contrib/rack/request_middleware.rb b/lib/datadog/appsec/contrib/rack/request_middleware.rb
index 74c64dc2517..1949cb9fa05 100644
--- a/lib/datadog/appsec/contrib/rack/request_middleware.rb
+++ b/lib/datadog/appsec/contrib/rack/request_middleware.rb
@@ -21,7 +21,7 @@ def initialize(app, opt = {})
           end
 
           def call(env)
-            return @app.call(env) unless @processor.ready?
+            return @app.call(env) unless Datadog.configuration.appsec.enabled && @processor.ready?
 
             # TODO: handle exceptions, except for @app.call
 

From 731028a3e76ba7854eff60267be25bebab37bd93 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 21:28:40 +0200
Subject: [PATCH 13/27] Release context, freeing backing C objects

This would apply to handle as well, yet currently handle is a value that
exists only once per application, so is never to be freed since there is
no place for its finalize to be called.
---
 lib/datadog/appsec/contrib/rack/request_middleware.rb | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/datadog/appsec/contrib/rack/request_middleware.rb b/lib/datadog/appsec/contrib/rack/request_middleware.rb
index 1949cb9fa05..9cde36f6c3f 100644
--- a/lib/datadog/appsec/contrib/rack/request_middleware.rb
+++ b/lib/datadog/appsec/contrib/rack/request_middleware.rb
@@ -57,6 +57,7 @@ def call(env)
             request_return
           ensure
             add_waf_runtime_tags(context) if context
+            context.finalize if context
           end
 
           private

From 35f67c4e5821a6b45bb90899a69969d6b92f9e87 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 21:30:50 +0200
Subject: [PATCH 14/27] Add AppSec integration specs

This covers the following AppSec integrations:
- Rack
- Rails
- Sinatra
---
 .../contrib/rack/integration_test_spec.rb     | 267 +++++++++++++++
 .../contrib/rails/integration_test_spec.rb    | 279 ++++++++++++++++
 .../contrib/sinatra/integration_test_spec.rb  | 304 ++++++++++++++++++
 .../appsec/contrib/support/spec_helper.rb     |   3 +
 4 files changed, 853 insertions(+)
 create mode 100644 spec/datadog/appsec/contrib/rack/integration_test_spec.rb
 create mode 100644 spec/datadog/appsec/contrib/rails/integration_test_spec.rb
 create mode 100644 spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb
 create mode 100644 spec/datadog/appsec/contrib/support/spec_helper.rb

diff --git a/spec/datadog/appsec/contrib/rack/integration_test_spec.rb b/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
new file mode 100644
index 00000000000..8cf864a3880
--- /dev/null
+++ b/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
@@ -0,0 +1,267 @@
+# typed: ignore
+
+require 'datadog/tracing/contrib/support/spec_helper'
+require 'rack/test'
+
+require 'securerandom'
+require 'rack'
+require 'rack/contrib/json_body_parser'
+
+require 'ddtrace'
+require 'datadog/tracing/contrib/rack/middlewares'
+
+require 'datadog/appsec'
+require 'datadog/appsec/contrib/rack/request_middleware'
+
+RSpec.describe 'Rack integration tests' do
+  include Rack::Test::Methods
+
+  let(:appsec_enabled) { true }
+  let(:tracing_enabled) { true }
+
+  before do
+    Datadog.configure do |c|
+      c.tracing.enabled = tracing_enabled
+      c.tracing.instrument :rack
+
+      c.appsec.enabled = appsec_enabled
+      c.appsec.instrument :rack
+    end
+  end
+
+  after { Datadog.registry[:rack].reset_configuration! }
+
+  context 'for an application' do
+    # TODO: also test without Tracing: it should run without trace transport
+
+    let(:middlewares) do
+      [
+        Datadog::Tracing::Contrib::Rack::TraceMiddleware,
+        Datadog::AppSec::Contrib::Rack::RequestMiddleware
+      ]
+    end
+
+    let(:app) do
+      app_routes = routes
+      app_middlewares = middlewares
+
+      Rack::Builder.new do
+        app_middlewares.each { |m| use m }
+        instance_eval(&app_routes)
+      end.to_app
+    end
+
+    let(:triggers) do
+      json = trace.send(:meta)['_dd.appsec.json']
+
+      JSON.parse(json).fetch('triggers', []) if json
+    end
+
+    shared_examples 'a GET 200 span' do
+      it { expect(span.get_tag('http.method')).to eq('GET') }
+      it { expect(span.get_tag('http.status_code')).to eq('200') }
+      it { expect(span.status).to eq(0) }
+    end
+
+    shared_examples 'a GET 403 span' do
+      it { expect(span.get_tag('http.method')).to eq('GET') }
+      it { expect(span.get_tag('http.status_code')).to eq('403') }
+      it { expect(span.status).to eq(0) }
+    end
+
+    shared_examples 'a GET 404 span' do
+      it { expect(span.get_tag('http.method')).to eq('GET') }
+      it { expect(span.get_tag('http.status_code')).to eq('404') }
+      it { expect(span.status).to eq(0) }
+    end
+
+    shared_examples 'a POST 200 span' do
+      it { expect(span.get_tag('http.method')).to eq('POST') }
+      it { expect(span.get_tag('http.status_code')).to eq('200') }
+      it { expect(span.status).to eq(0) }
+    end
+
+    shared_examples 'a trace without AppSec tags' do
+      it { expect(trace.send(:metrics)['_dd.appsec.enabled']).to be_nil }
+      it { expect(trace.send(:meta)['_dd.runtime_family']).to be_nil }
+      it { expect(trace.send(:meta)['_dd.appsec.waf.version']).to be_nil }
+    end
+
+    shared_examples 'a trace with AppSec tags' do
+      it { expect(trace.send(:metrics)['_dd.appsec.enabled']).to eq(1.0) }
+      it { expect(trace.send(:meta)['_dd.runtime_family']).to eq('ruby') }
+      it { expect(trace.send(:meta)['_dd.appsec.waf.version']).to match(/^\d+\.\d+\.\d+/) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it_behaves_like 'a trace without AppSec tags'
+      end
+    end
+
+    shared_examples 'a trace without AppSec events' do
+      it { expect(spans.select { |s| s.get_tag('appsec.event') }).to be_empty }
+      it { expect(trace.send(:meta)['_dd.appsec.triggers']).to be_nil }
+    end
+
+    shared_examples 'a trace with AppSec events' do
+      it { expect(spans.select { |s| s.get_tag('appsec.event') }).to_not be_empty }
+      it { expect(trace.send(:meta)['_dd.appsec.json']).to be_a String }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it_behaves_like 'a trace without AppSec events'
+      end
+    end
+
+    context 'with a basic route' do
+      let(:routes) do
+        proc do
+          map '/success' do
+            run(proc { |_env| [200, { 'Content-Type' => 'text/html' }, ['OK']] })
+          end
+        end
+      end
+
+      before do
+        response
+        expect(spans).to have(1).items
+      end
+
+      describe 'GET request' do
+        subject(:response) { get url, params, headers }
+
+        let(:url) { '/success' }
+        let(:params) { {} }
+        let(:headers) { {} }
+
+        context 'with a non-event-triggering request' do
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a GET 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace without AppSec events'
+        end
+
+        context 'with an event-triggering request in headers' do
+          let(:headers) { { 'HTTP_USER_AGENT' => 'Nessus SOAP' } }
+
+          it { is_expected.to be_ok }
+          it { expect(triggers).to be_a Array }
+
+          it_behaves_like 'a GET 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering request in query string' do
+          let(:params) { { q: '1 OR 1;' } }
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a GET 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering request in IP' do
+          skip 'TODO: config not implemented'
+
+          # TODO: let(:config) { { ip_denylist: ['1.2.3.4'] } }
+          let(:headers) { { 'HTTP_X_FORWARDED_FOR' => '1.2.3.4' } }
+
+          it { is_expected.to be_ok }
+
+          # TODO: it_behaves_like 'a GET 403 span'
+          it_behaves_like 'a trace with AppSec tags'
+          # TODO: it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering response' do
+          let(:url) { '/admin.php' } # well-known scanned path
+
+          it { is_expected.to be_not_found }
+          it { expect(triggers).to be_a Array }
+
+          it_behaves_like 'a GET 404 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+      end
+
+      describe 'POST request' do
+        subject(:response) { post url, params, headers }
+
+        let(:url) { '/success' }
+        let(:params) { {} }
+        let(:headers) { {} }
+
+        context 'with a non-event-triggering request' do
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a POST 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace without AppSec events'
+        end
+
+        context 'with an event-triggering request in application/x-www-form-url-encoded body' do
+          let(:params) { { q: '1 OR 1;' } }
+
+          let(:middlewares) do
+            [
+              Datadog::Tracing::Contrib::Rack::TraceMiddleware,
+              Datadog::AppSec::Contrib::Rack::RequestMiddleware,
+              Datadog::AppSec::Contrib::Rack::RequestBodyMiddleware,
+            ]
+          end
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a POST 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering request in multipart/form-data body' do
+          let(:params) { Rack::Test::Utils.build_multipart({ q: '1 OR 1;' }, true, true) }
+          let(:headers) { { 'CONTENT_TYPE' => "multipart/form-data; boundary=#{Rack::Test::MULTIPART_BOUNDARY}" } }
+
+          let(:middlewares) do
+            [
+              Datadog::Tracing::Contrib::Rack::TraceMiddleware,
+              Datadog::AppSec::Contrib::Rack::RequestMiddleware,
+              Datadog::AppSec::Contrib::Rack::RequestBodyMiddleware,
+            ]
+          end
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a POST 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering request as JSON' do
+          let(:middlewares) do
+            [
+              Datadog::Tracing::Contrib::Rack::TraceMiddleware,
+              Datadog::AppSec::Contrib::Rack::RequestMiddleware,
+              Rack::JSONBodyParser,
+              Datadog::AppSec::Contrib::Rack::RequestBodyMiddleware,
+            ]
+          end
+
+          let(:params) { JSON.generate('q' => '1 OR 1;') }
+          let(:headers) { { 'CONTENT_TYPE' => 'application/json' } }
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a POST 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+      end
+    end
+  end
+end
diff --git a/spec/datadog/appsec/contrib/rails/integration_test_spec.rb b/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
new file mode 100644
index 00000000000..19bfe9c80cf
--- /dev/null
+++ b/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
@@ -0,0 +1,279 @@
+# typed: ignore
+
+require 'datadog/tracing/contrib/rails/rails_helper'
+
+require 'datadog/appsec'
+
+RSpec.describe 'Rails integration tests' do
+  include Rack::Test::Methods
+
+  let(:sorted_spans) do
+    chain = lambda do |start|
+      loop.with_object([start]) do |_, o|
+        # root reached (default)
+        break o if o.last.parent_id == 0
+
+        parent = spans.find { |span| span.span_id == o.last.parent_id }
+
+        # root reached (distributed tracing)
+        break o if parent.nil?
+
+        o << parent
+      end
+    end
+    sort = ->(list) { list.sort_by { |e| chain.call(e).count } }
+    sort.call(spans)
+  end
+
+  let(:rack_span) { sorted_spans.reverse.find { |x| x.name == Datadog::Tracing::Contrib::Rack::Ext::SPAN_REQUEST } }
+
+  let(:appsec_enabled) { true }
+  let(:tracing_enabled) { true }
+
+  before do
+    Datadog.configure do |c|
+      c.tracing.enabled = tracing_enabled
+      c.tracing.instrument :rails
+
+      c.appsec.enabled = appsec_enabled
+      c.appsec.instrument :rails
+
+      # TODO: test with c.appsec.instrument :rack
+    end
+  end
+
+  context 'for an application' do
+    include_context 'Rails test application'
+
+    let(:controllers) { [controller] }
+
+    let(:controller) do
+      stub_const(
+        'TestController',
+        Class.new(ActionController::Base) do
+          skip_before_action :verify_authenticity_token
+
+          def success
+            render plain: 'ok'
+          end
+        end
+      )
+    end
+
+    let(:triggers) do
+      json = trace.send(:meta)['_dd.appsec.json']
+
+      JSON.parse(json).fetch('triggers', []) if json
+    end
+
+    let(:span) { rack_span }
+
+    shared_examples 'a GET 200 span' do
+      it { expect(span.get_tag('http.method')).to eq('GET') }
+      it { expect(span.get_tag('http.status_code')).to eq('200') }
+      it { expect(span.status).to eq(0) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it { expect(span.get_tag('http.method')).to eq('GET') }
+        it { expect(span.get_tag('http.status_code')).to eq('200') }
+        it { expect(span.status).to eq(0) }
+      end
+    end
+
+    shared_examples 'a GET 404 span' do
+      it { expect(span.get_tag('http.method')).to eq('GET') }
+      it { expect(span.get_tag('http.status_code')).to eq('404') }
+      it { expect(span.status).to eq(0) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it { expect(span.get_tag('http.method')).to eq('GET') }
+        it { expect(span.get_tag('http.status_code')).to eq('404') }
+        it { expect(span.status).to eq(0) }
+      end
+    end
+
+    shared_examples 'a POST 200 span' do
+      it { expect(span.get_tag('http.method')).to eq('POST') }
+      it { expect(span.get_tag('http.status_code')).to eq('200') }
+      it { expect(span.status).to eq(0) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it { expect(span.get_tag('http.method')).to eq('POST') }
+        it { expect(span.get_tag('http.status_code')).to eq('200') }
+        it { expect(span.status).to eq(0) }
+      end
+    end
+
+    shared_examples 'a trace without AppSec tags' do
+      it { expect(trace.send(:metrics)['_dd.appsec.enabled']).to be_nil }
+      it { expect(trace.send(:meta)['_dd.runtime_family']).to be_nil }
+      it { expect(trace.send(:meta)['_dd.appsec.waf.version']).to be_nil }
+    end
+
+    shared_examples 'a trace with AppSec tags' do
+      it { expect(trace.send(:metrics)['_dd.appsec.enabled']).to eq(1.0) }
+      it { expect(trace.send(:meta)['_dd.runtime_family']).to eq('ruby') }
+      it { expect(trace.send(:meta)['_dd.appsec.waf.version']).to match(/^\d+\.\d+\.\d+/) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it_behaves_like 'a trace without AppSec tags'
+      end
+    end
+
+    shared_examples 'a trace without AppSec events' do
+      it { expect(spans.select { |s| s.get_tag('appsec.event') }).to be_empty }
+      it { expect(trace.send(:meta)['_dd.appsec.triggers']).to be_nil }
+    end
+
+    shared_examples 'a trace with AppSec events' do
+      it { expect(spans.select { |s| s.get_tag('appsec.event') }).to_not be_empty }
+      it { expect(trace.send(:meta)['_dd.appsec.json']).to be_a String }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it_behaves_like 'a trace without AppSec events'
+      end
+    end
+
+    context 'with a basic route' do
+      let(:routes) do
+        {
+          '/success' => 'test#success',
+          [:post, '/success'] => 'test#success',
+        }
+      end
+
+      before do
+        response
+        expect(spans).to_not be_empty
+      end
+
+      describe 'GET request' do
+        subject(:response) { get url, params, headers }
+
+        let(:url) { '/success' }
+        let(:params) { {} }
+        let(:headers) { {} }
+
+        context 'with a non-event-triggering request' do
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a GET 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace without AppSec events'
+        end
+
+        context 'with an event-triggering request in headers' do
+          let(:headers) { { 'HTTP_USER_AGENT' => 'Nessus SOAP' } }
+
+          it { is_expected.to be_ok }
+          it { expect(triggers).to be_a Array }
+
+          it_behaves_like 'a GET 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering request in query string' do
+          let(:params) { { q: '1 OR 1;' } }
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a GET 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering request in route parameter' do
+          let(:routes) do
+            {
+              '/success/:id' => 'test#success'
+            }
+          end
+
+          let(:url) { '/success/1%20OR%201;' }
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a GET 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering response' do
+          let(:url) { '/admin.php' } # well-known scanned path
+
+          it { is_expected.to be_not_found }
+          it { expect(triggers).to be_a Array }
+
+          it_behaves_like 'a GET 404 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+      end
+
+      describe 'POST request' do
+        subject(:response) { post url, params, headers }
+
+        let(:url) { '/success' }
+        let(:params) { {} }
+        let(:headers) { {} }
+
+        context 'with a non-event-triggering request' do
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a POST 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace without AppSec events'
+        end
+
+        context 'with an event-triggering request in application/x-www-form-url-encoded body' do
+          let(:params) { { q: '1 OR 1;' } }
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a POST 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering request in multipart/form-data body' do
+          let(:params) { Rack::Test::Utils.build_multipart({ q: '1 OR 1;' }, true, true) }
+          let(:headers) { { 'CONTENT_TYPE' => "multipart/form-data; boundary=#{Rack::Test::MULTIPART_BOUNDARY}" } }
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a POST 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering request as JSON' do
+          let(:middlewares) do
+            [
+              Rack::JSONBodyParser,
+            ]
+          end
+
+          let(:params) { JSON.generate('q' => '1 OR 1;') }
+          let(:headers) { { 'CONTENT_TYPE' => 'application/json' } }
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a POST 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+      end
+    end
+  end
+end
diff --git a/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb b/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb
new file mode 100644
index 00000000000..a13341fe6ee
--- /dev/null
+++ b/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb
@@ -0,0 +1,304 @@
+# typed: ignore
+
+require 'datadog/tracing/contrib/support/spec_helper'
+require 'rack/test'
+
+require 'securerandom'
+require 'sinatra/base'
+require 'rack/contrib/json_body_parser'
+
+require 'datadog/tracing'
+require 'datadog/tracing/metadata/ext'
+require 'datadog/tracing/sampling/ext'
+require 'datadog/tracing/contrib/sinatra/ext'
+require 'datadog/tracing/contrib/sinatra/tracer'
+
+require 'datadog/appsec'
+require 'datadog/appsec/contrib/rack/request_middleware'
+
+RSpec.describe 'Sinatra integration tests' do
+  include Rack::Test::Methods
+
+  let(:sorted_spans) do
+    chain = lambda do |start|
+      loop.with_object([start]) do |_, o|
+        # root reached (default)
+        break o if o.last.parent_id == 0
+
+        parent = spans.find { |span| span.span_id == o.last.parent_id }
+
+        # root reached (distributed tracing)
+        break o if parent.nil?
+
+        o << parent
+      end
+    end
+    sort = ->(list) { list.sort_by { |e| chain.call(e).count } }
+    sort.call(spans)
+  end
+
+  let(:sinatra_span) { sorted_spans.reverse.find { |x| x.name == Datadog::Tracing::Contrib::Sinatra::Ext::SPAN_REQUEST } }
+  let(:route_span) { sorted_spans.find { |x| x.name == Datadog::Tracing::Contrib::Sinatra::Ext::SPAN_ROUTE } }
+  let(:rack_span) { sorted_spans.reverse.find { |x| x.name == Datadog::Tracing::Contrib::Rack::Ext::SPAN_REQUEST } }
+
+  let(:appsec_enabled) { true }
+  let(:tracing_enabled) { true }
+
+  before do
+    Datadog.configure do |c|
+      c.tracing.enabled = tracing_enabled
+      c.tracing.instrument :sinatra
+
+      c.appsec.enabled = appsec_enabled
+      c.appsec.instrument :sinatra
+
+      # TODO: test with c.appsec.instrument :rack
+    end
+  end
+
+  around do |example|
+    # Reset before and after each example; don't allow global state to linger.
+    Datadog.registry[:sinatra].reset_configuration!
+    example.run
+    Datadog.registry[:sinatra].reset_configuration!
+  end
+
+  context 'for an application' do
+    # TODO: also test without Tracing: it should run without trace transport
+
+    let(:middlewares) { [] }
+
+    let(:app) do
+      app_routes = routes
+      app_middlewares = middlewares
+
+      Class.new(Sinatra::Application) do
+        app_middlewares.each { |m| use m }
+        instance_exec(&app_routes)
+      end
+    end
+
+    let(:triggers) do
+      json = trace.send(:meta)['_dd.appsec.json']
+
+      JSON.parse(json).fetch('triggers', []) if json
+    end
+
+    let(:span) { rack_span }
+
+    shared_examples 'a GET 200 span' do
+      it { expect(span.get_tag('http.method')).to eq('GET') }
+      it { expect(span.get_tag('http.status_code')).to eq('200') }
+      it { expect(span.status).to eq(0) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it { expect(span.get_tag('http.method')).to eq('GET') }
+        it { expect(span.get_tag('http.status_code')).to eq('200') }
+        it { expect(span.status).to eq(0) }
+      end
+    end
+
+    shared_examples 'a GET 404 span' do
+      it { expect(span.get_tag('http.method')).to eq('GET') }
+      it { expect(span.get_tag('http.status_code')).to eq('404') }
+      it { expect(span.status).to eq(0) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it { expect(span.get_tag('http.method')).to eq('GET') }
+        it { expect(span.get_tag('http.status_code')).to eq('404') }
+        it { expect(span.status).to eq(0) }
+      end
+    end
+
+    shared_examples 'a POST 200 span' do
+      it { expect(span.get_tag('http.method')).to eq('POST') }
+      it { expect(span.get_tag('http.status_code')).to eq('200') }
+      it { expect(span.status).to eq(0) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it { expect(span.get_tag('http.method')).to eq('POST') }
+        it { expect(span.get_tag('http.status_code')).to eq('200') }
+        it { expect(span.status).to eq(0) }
+      end
+    end
+
+    shared_examples 'a trace without AppSec tags' do
+      it { expect(trace.send(:metrics)['_dd.appsec.enabled']).to be_nil }
+      it { expect(trace.send(:meta)['_dd.runtime_family']).to be_nil }
+      it { expect(trace.send(:meta)['_dd.appsec.waf.version']).to be_nil }
+    end
+
+    shared_examples 'a trace with AppSec tags' do
+      it { expect(trace.send(:metrics)['_dd.appsec.enabled']).to eq(1.0) }
+      it { expect(trace.send(:meta)['_dd.runtime_family']).to eq('ruby') }
+      it { expect(trace.send(:meta)['_dd.appsec.waf.version']).to match(/^\d+\.\d+\.\d+/) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it_behaves_like 'a trace without AppSec tags'
+      end
+    end
+
+    shared_examples 'a trace without AppSec events' do
+      it { expect(spans.select { |s| s.get_tag('appsec.event') }).to be_empty }
+      it { expect(trace.send(:meta)['_dd.appsec.triggers']).to be_nil }
+    end
+
+    shared_examples 'a trace with AppSec events' do
+      it { expect(spans.select { |s| s.get_tag('appsec.event') }).to_not be_empty }
+      it { expect(trace.send(:meta)['_dd.appsec.json']).to be_a String }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it_behaves_like 'a trace without AppSec events'
+      end
+    end
+
+    context 'with a basic route' do
+      let(:routes) do
+        lambda do
+          get '/success' do
+            'ok'
+          end
+
+          post '/success' do
+            'ok'
+          end
+        end
+      end
+
+      before do
+        response
+        expect(spans).to_not be_empty
+      end
+
+      describe 'GET request' do
+        subject(:response) { get url, params, headers }
+
+        let(:url) { '/success' }
+        let(:params) { {} }
+        let(:headers) { {} }
+
+        context 'with a non-event-triggering request' do
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a GET 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace without AppSec events'
+        end
+
+        context 'with an event-triggering request in headers' do
+          let(:headers) { { 'HTTP_USER_AGENT' => 'Nessus SOAP' } }
+
+          it { is_expected.to be_ok }
+          it { expect(triggers).to be_a Array }
+
+          it_behaves_like 'a GET 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering request in query string' do
+          let(:params) { { q: '1 OR 1;' } }
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a GET 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering request in route parameter' do
+          let(:routes) do
+            lambda do
+              get '/success/:id' do
+                'ok'
+              end
+            end
+          end
+
+          let(:url) { '/success/1%20OR%201;' }
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a GET 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering response' do
+          let(:url) { '/admin.php' } # well-known scanned path
+
+          it { is_expected.to be_not_found }
+          it { expect(triggers).to be_a Array }
+
+          it_behaves_like 'a GET 404 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+      end
+
+      describe 'POST request' do
+        subject(:response) { post url, params, headers }
+
+        let(:url) { '/success' }
+        let(:params) { {} }
+        let(:headers) { {} }
+
+        context 'with a non-event-triggering request' do
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a POST 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace without AppSec events'
+        end
+
+        context 'with an event-triggering request in application/x-www-form-url-encoded body' do
+          let(:params) { { q: '1 OR 1;' } }
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a POST 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering request in multipart/form-data body' do
+          let(:params) { Rack::Test::Utils.build_multipart({ q: '1 OR 1;' }, true, true) }
+          let(:headers) { { 'CONTENT_TYPE' => "multipart/form-data; boundary=#{Rack::Test::MULTIPART_BOUNDARY}" } }
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a POST 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+
+        context 'with an event-triggering request as JSON' do
+          let(:middlewares) do
+            [
+              Rack::JSONBodyParser,
+            ]
+          end
+
+          let(:params) { JSON.generate('q' => '1 OR 1;') }
+          let(:headers) { { 'CONTENT_TYPE' => 'application/json' } }
+
+          it { is_expected.to be_ok }
+
+          it_behaves_like 'a POST 200 span'
+          it_behaves_like 'a trace with AppSec tags'
+          it_behaves_like 'a trace with AppSec events'
+        end
+      end
+    end
+  end
+end
diff --git a/spec/datadog/appsec/contrib/support/spec_helper.rb b/spec/datadog/appsec/contrib/support/spec_helper.rb
new file mode 100644
index 00000000000..1f3655867d0
--- /dev/null
+++ b/spec/datadog/appsec/contrib/support/spec_helper.rb
@@ -0,0 +1,3 @@
+# typed: ignore
+
+require 'datadog/tracing/contrib/support/spec_helper'

From ed9a11f11a57c86e1f229324914cd5ca0ac4a8ca Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 22:01:29 +0200
Subject: [PATCH 15/27] Fix log for catchall case

---
 lib/datadog/appsec/contrib/rack/reactive/request.rb      | 2 +-
 lib/datadog/appsec/contrib/rack/reactive/request_body.rb | 2 +-
 lib/datadog/appsec/contrib/rack/reactive/response.rb     | 2 +-
 lib/datadog/appsec/contrib/rails/reactive/action.rb      | 2 +-
 lib/datadog/appsec/contrib/sinatra/reactive/routed.rb    | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/datadog/appsec/contrib/rack/reactive/request.rb b/lib/datadog/appsec/contrib/rack/reactive/request.rb
index abaa5761c56..08960dfd6d6 100644
--- a/lib/datadog/appsec/contrib/rack/reactive/request.rb
+++ b/lib/datadog/appsec/contrib/rack/reactive/request.rb
@@ -74,7 +74,7 @@ def self.subscribe(op, waf_context)
                 when :invalid_rule, :invalid_flow, :no_rule
                   Datadog.logger.debug { "WAF RULE ERROR: #{result.inspect}" }
                 else
-                  Datadog.logger.debug { "WAF UNKNOWN: #{action.inspect} #{result.inspect}" }
+                  Datadog.logger.debug { "WAF UNKNOWN: #{result.status.inspect} #{result.inspect}" }
                 end
               end
             end
diff --git a/lib/datadog/appsec/contrib/rack/reactive/request_body.rb b/lib/datadog/appsec/contrib/rack/reactive/request_body.rb
index 8057ce4cf33..702efd9eba4 100644
--- a/lib/datadog/appsec/contrib/rack/reactive/request_body.rb
+++ b/lib/datadog/appsec/contrib/rack/reactive/request_body.rb
@@ -52,7 +52,7 @@ def self.subscribe(op, waf_context)
                 when :invalid_rule, :invalid_flow, :no_rule
                   Datadog.logger.debug { "WAF RULE ERROR: #{result.inspect}" }
                 else
-                  Datadog.logger.debug { "WAF UNKNOWN: #{action.inspect} #{result.inspect}" }
+                  Datadog.logger.debug { "WAF UNKNOWN: #{result.status.inspect} #{result.inspect}" }
                 end
               end
             end
diff --git a/lib/datadog/appsec/contrib/rack/reactive/response.rb b/lib/datadog/appsec/contrib/rack/reactive/response.rb
index 6fd15055c10..d0411866038 100644
--- a/lib/datadog/appsec/contrib/rack/reactive/response.rb
+++ b/lib/datadog/appsec/contrib/rack/reactive/response.rb
@@ -52,7 +52,7 @@ def self.subscribe(op, waf_context)
                 when :invalid_rule, :invalid_flow, :no_rule
                   Datadog.logger.debug { "WAF RULE ERROR: #{result.inspect}" }
                 else
-                  Datadog.logger.debug { "WAF UNKNOWN: #{action.inspect} #{result.inspect}" }
+                  Datadog.logger.debug { "WAF UNKNOWN: #{result.status.inspect} #{result.inspect}" }
                 end
               end
             end
diff --git a/lib/datadog/appsec/contrib/rails/reactive/action.rb b/lib/datadog/appsec/contrib/rails/reactive/action.rb
index 7aa33abc3b3..b0369b88a58 100644
--- a/lib/datadog/appsec/contrib/rails/reactive/action.rb
+++ b/lib/datadog/appsec/contrib/rails/reactive/action.rb
@@ -56,7 +56,7 @@ def self.subscribe(op, waf_context)
                 when :invalid_rule, :invalid_flow, :no_rule
                   Datadog.logger.debug { "WAF RULE ERROR: #{result.inspect}" }
                 else
-                  Datadog.logger.debug { "WAF UNKNOWN: #{action.inspect} #{result.inspect}" }
+                  Datadog.logger.debug { "WAF UNKNOWN: #{result.status.inspect} #{result.inspect}" }
                 end
               end
             end
diff --git a/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb b/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb
index 60d65c1400e..1fbef723fdf 100644
--- a/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb
+++ b/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb
@@ -51,7 +51,7 @@ def self.subscribe(op, waf_context)
                 when :invalid_rule, :invalid_flow, :no_rule
                   Datadog.logger.debug { "WAF RULE ERROR: #{result.inspect}" }
                 else
-                  Datadog.logger.debug { "WAF UNKNOWN: #{action.inspect} #{result.inspect}" }
+                  Datadog.logger.debug { "WAF UNKNOWN: #{result.status.inspect} #{result.inspect}" }
                 end
               end
             end

From eb0a4010e296ebc3e894dc4f2c9539c7c5997d09 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 22:07:34 +0200
Subject: [PATCH 16/27] Comply with linter

---
 lib/datadog/appsec/contrib/rack/gateway/watcher.rb |  4 ++++
 lib/datadog/appsec/event.rb                        |  4 ----
 spec/datadog/appsec/processor_spec.rb              | 10 ----------
 3 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/lib/datadog/appsec/contrib/rack/gateway/watcher.rb b/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
index 460fdec70a7..01b476eb3bd 100644
--- a/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
@@ -16,6 +16,8 @@ module Gateway
           module Watcher
             # rubocop:disable Metrics/AbcSize
             # rubocop:disable Metrics/MethodLength
+            # rubocop:disable Metrics/CyclomaticComplexity
+            # rubocop:disable Metrics/PerceivedComplexity
             def self.watch
               Instrumentation.gateway.watch('rack.request', :appsec) do |stack, request|
                 block = false
@@ -143,6 +145,8 @@ def self.watch
                 [ret, res]
               end
             end
+            # rubocop:enable Metrics/CyclomaticComplexity
+            # rubocop:enable Metrics/PerceivedComplexity
             # rubocop:enable Metrics/MethodLength
             # rubocop:enable Metrics/AbcSize
 
diff --git a/lib/datadog/appsec/event.rb b/lib/datadog/appsec/event.rb
index e23c06290d3..82b08f2c757 100644
--- a/lib/datadog/appsec/event.rb
+++ b/lib/datadog/appsec/event.rb
@@ -51,8 +51,6 @@ def self.record(*events)
         end
       end
 
-      # rubocop:disable Metrics/AbcSize
-      # rubocop:disable Metrics/MethodLength
       def self.record_via_span(*events)
         events.group_by { |e| e[:trace] }.each do |trace, event_group|
           unless trace
@@ -110,8 +108,6 @@ def self.record_via_span(*events)
           end
         end
       end
-      # rubocop:enable Metrics/MethodLength
-      # rubocop:enable Metrics/AbcSize
     end
   end
 end
diff --git a/spec/datadog/appsec/processor_spec.rb b/spec/datadog/appsec/processor_spec.rb
index 3b850ff1e92..db1b3797d1e 100644
--- a/spec/datadog/appsec/processor_spec.rb
+++ b/spec/datadog/appsec/processor_spec.rb
@@ -102,16 +102,6 @@
       }
     end
 
-    context 'when ruleset is default' do
-      let(:ruleset) { :recommended }
-
-      before do
-        expect(Datadog::AppSec::Assets).to receive(:waf_rules).with(:recommended).and_call_original.twice
-      end
-
-      it { expect(described_class.new.send(:load_ruleset)).to be true }
-    end
-
     context 'when ruleset is :recommended' do
       let(:ruleset) { :recommended }
 

From 08d9b11e8b886a821361b4c5e0547f09668c592e Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 22:15:29 +0200
Subject: [PATCH 17/27] Run AppSec specs in CI

---
 Rakefile | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/Rakefile b/Rakefile
index 73223a789da..1693bf2f341 100644
--- a/Rakefile
+++ b/Rakefile
@@ -368,6 +368,18 @@ task :ci do
   declare '❌ 2.1 / ❌ 2.2 / ❌ 2.3 / ✅ 2.4 / ✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ jruby' => 'bundle exec appraisal cucumber3 rake spec:cucumber'
   declare '❌ 2.1 / ❌ 2.2 / ❌ 2.3 / ✅ 2.4 / ✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ jruby' => 'bundle exec appraisal cucumber4 rake spec:cucumber'
   declare '❌ 2.1 / ❌ 2.2 / ❌ 2.3 / ❌ 2.4 / ✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ jruby' => 'bundle exec appraisal cucumber5 rake spec:cucumber'
+
+  # AppSec contrib specs
+  declare '✅ 2.1 / ✅ 2.2 / ✅ 2.3 / ✅ 2.4 / ✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ jruby' => 'bundle exec appraisal contrib rake spec:appsec:rack'
+  declare '✅ 2.1 / ✅ 2.2 / ✅ 2.3 / ✅ 2.4 / ✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ jruby' => 'bundle exec appraisal contrib rake spec:appsec:sinatra'
+  declare '✅ 2.1 / ✅ 2.2 / ✅ 2.3 / ❌ 2.4 / ❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ✅ jruby' => 'bundle exec appraisal rails4-mysql2 rake spec:rails'
+
+  # AppSec Rails specs
+  declare '✅ 2.1 / ✅ 2.2 / ✅ 2.3 / ❌ 2.4 / ❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ✅ jruby' => 'bundle exec appraisal rails32-mysql2 rake spec:rails'
+  declare '✅ 2.1 / ✅ 2.2 / ✅ 2.3 / ❌ 2.4 / ❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ✅ jruby' => 'bundle exec appraisal rails4-mysql2 rake spec:appsec:rails'
+  declare '❌ 2.1 / ✅ 2.2 / ✅ 2.3 / ✅ 2.4 / ✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ✅ jruby' => 'bundle exec appraisal rails5-mysql2 rake spec:appsec:rails'
+  declare '❌ 2.1 / ❌ 2.2 / ❌ 2.3 / ❌ 2.4 / ✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ✅ jruby' => 'bundle exec appraisal rails6-mysql2 rake spec:appsec:rails'
+  declare '❌ 2.1 / ❌ 2.2 / ❌ 2.3 / ❌ 2.4 / ✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ❌ 3.2 / ✅ jruby' => 'bundle exec appraisal rails61-mysql2 rake spec:appsec:rails'
 end
 
 namespace :coverage do

From a961764b859622251f6afc48f086a0077c205308 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 22:46:34 +0200
Subject: [PATCH 18/27] Handle old rack-contrib in specs

JSONBodyParser replaces PostBodyContentTypeParser
---
 .../contrib/rack/integration_test_spec.rb     | 19 +++++++++++++++++--
 .../contrib/sinatra/integration_test_spec.rb  | 19 +++++++++++++++++--
 2 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/spec/datadog/appsec/contrib/rack/integration_test_spec.rb b/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
index 8cf864a3880..4d442a3c082 100644
--- a/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
+++ b/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
@@ -5,7 +5,13 @@
 
 require 'securerandom'
 require 'rack'
-require 'rack/contrib/json_body_parser'
+
+begin
+  require 'rack/contrib/json_body_parser'
+rescue LoadError
+  # fallback for old rack-contrib
+  require 'rack/contrib/post_body_content_type_parser'
+end
 
 require 'ddtrace'
 require 'datadog/tracing/contrib/rack/middlewares'
@@ -243,11 +249,20 @@
         end
 
         context 'with an event-triggering request as JSON' do
+          let(:rack_contrib_body_parser) do
+            if defined?(Rack::JSONBodyParser)
+              Rack::JSONBodyParser
+            else
+              # fallback for old rack-contrib
+              Rack::PostBodyContentTypeParser
+            end
+          end
+
           let(:middlewares) do
             [
               Datadog::Tracing::Contrib::Rack::TraceMiddleware,
               Datadog::AppSec::Contrib::Rack::RequestMiddleware,
-              Rack::JSONBodyParser,
+              rack_contrib_body_parser,
               Datadog::AppSec::Contrib::Rack::RequestBodyMiddleware,
             ]
           end
diff --git a/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb b/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb
index a13341fe6ee..ec4baefa676 100644
--- a/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb
+++ b/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb
@@ -5,7 +5,13 @@
 
 require 'securerandom'
 require 'sinatra/base'
-require 'rack/contrib/json_body_parser'
+
+begin
+  require 'rack/contrib/json_body_parser'
+rescue LoadError
+  # fallback for old rack-contrib
+  require 'rack/contrib/post_body_content_type_parser'
+end
 
 require 'datadog/tracing'
 require 'datadog/tracing/metadata/ext'
@@ -283,9 +289,18 @@
         end
 
         context 'with an event-triggering request as JSON' do
+          let(:rack_contrib_body_parser) do
+            if defined?(Rack::JSONBodyParser)
+              Rack::JSONBodyParser
+            else
+              # fallback for old rack-contrib
+              Rack::PostBodyContentTypeParser
+            end
+          end
+
           let(:middlewares) do
             [
-              Rack::JSONBodyParser,
+              rack_contrib_body_parser,
             ]
           end
 

From 2990268dbf79b583bddd806ccd61b8927f8615fd Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 22:47:42 +0200
Subject: [PATCH 19/27] Handle old Rails in specs

With POST requests, a CSRF token is theoretically needed, but we have
none. Skip the filter, using the appropriate method depending on Rails
versions. Also the mock app may not have the filter defined.
---
 .../appsec/contrib/rails/integration_test_spec.rb     | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/spec/datadog/appsec/contrib/rails/integration_test_spec.rb b/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
index 19bfe9c80cf..29051066173 100644
--- a/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
+++ b/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
@@ -51,7 +51,16 @@
       stub_const(
         'TestController',
         Class.new(ActionController::Base) do
-          skip_before_action :verify_authenticity_token
+          # skip CSRF token check for non-GET requests
+          begin
+            if respond_to?(:skip_before_action)
+              skip_before_action :verify_authenticity_token
+            else
+              skip_before_filter :verify_authenticity_token
+            end
+          rescue ArgumentError # :verify_authenticity_token might not be defined
+            nil
+          end
 
           def success
             render plain: 'ok'

From 052644c3403586b724f6f36d2568a394354b563d Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 23:06:55 +0200
Subject: [PATCH 20/27] Handle old rack-test

Prior to 0.7 an argument is lacking to generate multipart requests
without uploading a file.
---
 .../contrib/rack/integration_test_spec.rb     | 32 ++++++++++---------
 .../contrib/rails/integration_test_spec.rb    | 16 ++++++----
 .../contrib/sinatra/integration_test_spec.rb  | 16 ++++++----
 3 files changed, 35 insertions(+), 29 deletions(-)

diff --git a/spec/datadog/appsec/contrib/rack/integration_test_spec.rb b/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
index 4d442a3c082..1d1876be611 100644
--- a/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
+++ b/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
@@ -229,23 +229,25 @@
           it_behaves_like 'a trace with AppSec events'
         end
 
-        context 'with an event-triggering request in multipart/form-data body' do
-          let(:params) { Rack::Test::Utils.build_multipart({ q: '1 OR 1;' }, true, true) }
-          let(:headers) { { 'CONTENT_TYPE' => "multipart/form-data; boundary=#{Rack::Test::MULTIPART_BOUNDARY}" } }
-
-          let(:middlewares) do
-            [
-              Datadog::Tracing::Contrib::Rack::TraceMiddleware,
-              Datadog::AppSec::Contrib::Rack::RequestMiddleware,
-              Datadog::AppSec::Contrib::Rack::RequestBodyMiddleware,
-            ]
-          end
+        unless Gem.loaded_specs['rack-test'].version.to_s < '0.7'
+          context 'with an event-triggering request in multipart/form-data body' do
+            let(:params) { Rack::Test::Utils.build_multipart({ q: '1 OR 1;' }, true, true) }
+            let(:headers) { { 'CONTENT_TYPE' => "multipart/form-data; boundary=#{Rack::Test::MULTIPART_BOUNDARY}" } }
+
+            let(:middlewares) do
+              [
+                Datadog::Tracing::Contrib::Rack::TraceMiddleware,
+                Datadog::AppSec::Contrib::Rack::RequestMiddleware,
+                Datadog::AppSec::Contrib::Rack::RequestBodyMiddleware,
+              ]
+            end
 
-          it { is_expected.to be_ok }
+            it { is_expected.to be_ok }
 
-          it_behaves_like 'a POST 200 span'
-          it_behaves_like 'a trace with AppSec tags'
-          it_behaves_like 'a trace with AppSec events'
+            it_behaves_like 'a POST 200 span'
+            it_behaves_like 'a trace with AppSec tags'
+            it_behaves_like 'a trace with AppSec events'
+          end
         end
 
         context 'with an event-triggering request as JSON' do
diff --git a/spec/datadog/appsec/contrib/rails/integration_test_spec.rb b/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
index 29051066173..e705a71a853 100644
--- a/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
+++ b/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
@@ -255,15 +255,17 @@ def success
           it_behaves_like 'a trace with AppSec events'
         end
 
-        context 'with an event-triggering request in multipart/form-data body' do
-          let(:params) { Rack::Test::Utils.build_multipart({ q: '1 OR 1;' }, true, true) }
-          let(:headers) { { 'CONTENT_TYPE' => "multipart/form-data; boundary=#{Rack::Test::MULTIPART_BOUNDARY}" } }
+        unless Gem.loaded_specs['rack-test'].version.to_s < '0.7'
+          context 'with an event-triggering request in multipart/form-data body' do
+            let(:params) { Rack::Test::Utils.build_multipart({ q: '1 OR 1;' }, true, true) }
+            let(:headers) { { 'CONTENT_TYPE' => "multipart/form-data; boundary=#{Rack::Test::MULTIPART_BOUNDARY}" } }
 
-          it { is_expected.to be_ok }
+            it { is_expected.to be_ok }
 
-          it_behaves_like 'a POST 200 span'
-          it_behaves_like 'a trace with AppSec tags'
-          it_behaves_like 'a trace with AppSec events'
+            it_behaves_like 'a POST 200 span'
+            it_behaves_like 'a trace with AppSec tags'
+            it_behaves_like 'a trace with AppSec events'
+          end
         end
 
         context 'with an event-triggering request as JSON' do
diff --git a/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb b/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb
index ec4baefa676..4aca77cd78f 100644
--- a/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb
+++ b/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb
@@ -277,15 +277,17 @@
           it_behaves_like 'a trace with AppSec events'
         end
 
-        context 'with an event-triggering request in multipart/form-data body' do
-          let(:params) { Rack::Test::Utils.build_multipart({ q: '1 OR 1;' }, true, true) }
-          let(:headers) { { 'CONTENT_TYPE' => "multipart/form-data; boundary=#{Rack::Test::MULTIPART_BOUNDARY}" } }
+        unless Gem.loaded_specs['rack-test'].version.to_s < '0.7'
+          context 'with an event-triggering request in multipart/form-data body' do
+            let(:params) { Rack::Test::Utils.build_multipart({ q: '1 OR 1;' }, true, true) }
+            let(:headers) { { 'CONTENT_TYPE' => "multipart/form-data; boundary=#{Rack::Test::MULTIPART_BOUNDARY}" } }
 
-          it { is_expected.to be_ok }
+            it { is_expected.to be_ok }
 
-          it_behaves_like 'a POST 200 span'
-          it_behaves_like 'a trace with AppSec tags'
-          it_behaves_like 'a trace with AppSec events'
+            it_behaves_like 'a POST 200 span'
+            it_behaves_like 'a trace with AppSec tags'
+            it_behaves_like 'a trace with AppSec events'
+          end
         end
 
         context 'with an event-triggering request as JSON' do

From 397ec9aae58d4d07edc1ac8a0a1defee2ac6973b Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Tue, 11 Oct 2022 23:18:02 +0200
Subject: [PATCH 21/27] Remove useless reference to middleware

---
 spec/datadog/appsec/contrib/rails/integration_test_spec.rb | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/spec/datadog/appsec/contrib/rails/integration_test_spec.rb b/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
index e705a71a853..13840d43baf 100644
--- a/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
+++ b/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
@@ -269,12 +269,6 @@ def success
         end
 
         context 'with an event-triggering request as JSON' do
-          let(:middlewares) do
-            [
-              Rack::JSONBodyParser,
-            ]
-          end
-
           let(:params) { JSON.generate('q' => '1 OR 1;') }
           let(:headers) { { 'CONTENT_TYPE' => 'application/json' } }
 

From b24ac6a27bc392c102b45dc9119be151516ff7da Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Fri, 14 Oct 2022 17:56:09 +0200
Subject: [PATCH 22/27] Force grpc build CPU for integration test apps

---
 integration/apps/rack/Dockerfile-ci             | 5 +++++
 integration/apps/rails-five/Dockerfile-ci       | 5 +++++
 integration/apps/rails-seven/Dockerfile-ci      | 5 +++++
 integration/apps/rails-six/Dockerfile-ci        | 5 +++++
 integration/apps/rspec/Dockerfile-ci            | 6 ++++++
 integration/apps/ruby/Dockerfile-ci             | 6 ++++++
 integration/apps/sinatra2-classic/Dockerfile-ci | 5 +++++
 integration/apps/sinatra2-modular/Dockerfile-ci | 5 +++++
 8 files changed, 42 insertions(+)

diff --git a/integration/apps/rack/Dockerfile-ci b/integration/apps/rack/Dockerfile-ci
index 7eb3d041256..a9e720aeee0 100644
--- a/integration/apps/rack/Dockerfile-ci
+++ b/integration/apps/rack/Dockerfile-ci
@@ -8,6 +8,11 @@ COPY . /vendor/dd-trace-rb
 # Install dependencies
 ENV DD_DEMO_ENV_GEM_LOCAL_DDTRACE /vendor/dd-trace-rb
 
+# Override number of concurrent compiles in grpc gem, see https://github.com/grpc/grpc/pull/28250 and https://github.com/DataDog/dd-trace-rb/issues/1791
+# If you see gem installation failing with "Killed" on CircleCI and `gem install --platform ruby grpc` reproduces the
+# issue when you connect to the testing container via ssh, then try lowering this file a notch.
+ENV GRPC_RUBY_BUILD_PROCS: 6
+
 RUN /vendor/dd-demo/build_ddtrace_profiling_native_extension.rb
 
 RUN bundle install
diff --git a/integration/apps/rails-five/Dockerfile-ci b/integration/apps/rails-five/Dockerfile-ci
index 7eb3d041256..a9e720aeee0 100644
--- a/integration/apps/rails-five/Dockerfile-ci
+++ b/integration/apps/rails-five/Dockerfile-ci
@@ -8,6 +8,11 @@ COPY . /vendor/dd-trace-rb
 # Install dependencies
 ENV DD_DEMO_ENV_GEM_LOCAL_DDTRACE /vendor/dd-trace-rb
 
+# Override number of concurrent compiles in grpc gem, see https://github.com/grpc/grpc/pull/28250 and https://github.com/DataDog/dd-trace-rb/issues/1791
+# If you see gem installation failing with "Killed" on CircleCI and `gem install --platform ruby grpc` reproduces the
+# issue when you connect to the testing container via ssh, then try lowering this file a notch.
+ENV GRPC_RUBY_BUILD_PROCS: 6
+
 RUN /vendor/dd-demo/build_ddtrace_profiling_native_extension.rb
 
 RUN bundle install
diff --git a/integration/apps/rails-seven/Dockerfile-ci b/integration/apps/rails-seven/Dockerfile-ci
index 7eb3d041256..a9e720aeee0 100644
--- a/integration/apps/rails-seven/Dockerfile-ci
+++ b/integration/apps/rails-seven/Dockerfile-ci
@@ -8,6 +8,11 @@ COPY . /vendor/dd-trace-rb
 # Install dependencies
 ENV DD_DEMO_ENV_GEM_LOCAL_DDTRACE /vendor/dd-trace-rb
 
+# Override number of concurrent compiles in grpc gem, see https://github.com/grpc/grpc/pull/28250 and https://github.com/DataDog/dd-trace-rb/issues/1791
+# If you see gem installation failing with "Killed" on CircleCI and `gem install --platform ruby grpc` reproduces the
+# issue when you connect to the testing container via ssh, then try lowering this file a notch.
+ENV GRPC_RUBY_BUILD_PROCS: 6
+
 RUN /vendor/dd-demo/build_ddtrace_profiling_native_extension.rb
 
 RUN bundle install
diff --git a/integration/apps/rails-six/Dockerfile-ci b/integration/apps/rails-six/Dockerfile-ci
index 7eb3d041256..a9e720aeee0 100644
--- a/integration/apps/rails-six/Dockerfile-ci
+++ b/integration/apps/rails-six/Dockerfile-ci
@@ -8,6 +8,11 @@ COPY . /vendor/dd-trace-rb
 # Install dependencies
 ENV DD_DEMO_ENV_GEM_LOCAL_DDTRACE /vendor/dd-trace-rb
 
+# Override number of concurrent compiles in grpc gem, see https://github.com/grpc/grpc/pull/28250 and https://github.com/DataDog/dd-trace-rb/issues/1791
+# If you see gem installation failing with "Killed" on CircleCI and `gem install --platform ruby grpc` reproduces the
+# issue when you connect to the testing container via ssh, then try lowering this file a notch.
+ENV GRPC_RUBY_BUILD_PROCS: 6
+
 RUN /vendor/dd-demo/build_ddtrace_profiling_native_extension.rb
 
 RUN bundle install
diff --git a/integration/apps/rspec/Dockerfile-ci b/integration/apps/rspec/Dockerfile-ci
index d5aa17c356a..1a2178c22c3 100644
--- a/integration/apps/rspec/Dockerfile-ci
+++ b/integration/apps/rspec/Dockerfile-ci
@@ -8,4 +8,10 @@ COPY . /vendor/dd-trace-rb
 # Install dependencies
 # Setup specific version of ddtrace, if specified.
 ENV DD_DEMO_ENV_GEM_LOCAL_DDTRACE /vendor/dd-trace-rb
+
+# Override number of concurrent compiles in grpc gem, see https://github.com/grpc/grpc/pull/28250 and https://github.com/DataDog/dd-trace-rb/issues/1791
+# If you see gem installation failing with "Killed" on CircleCI and `gem install --platform ruby grpc` reproduces the
+# issue when you connect to the testing container via ssh, then try lowering this file a notch.
+ENV GRPC_RUBY_BUILD_PROCS: 6
+
 RUN bundle install
diff --git a/integration/apps/ruby/Dockerfile-ci b/integration/apps/ruby/Dockerfile-ci
index d5aa17c356a..1a2178c22c3 100644
--- a/integration/apps/ruby/Dockerfile-ci
+++ b/integration/apps/ruby/Dockerfile-ci
@@ -8,4 +8,10 @@ COPY . /vendor/dd-trace-rb
 # Install dependencies
 # Setup specific version of ddtrace, if specified.
 ENV DD_DEMO_ENV_GEM_LOCAL_DDTRACE /vendor/dd-trace-rb
+
+# Override number of concurrent compiles in grpc gem, see https://github.com/grpc/grpc/pull/28250 and https://github.com/DataDog/dd-trace-rb/issues/1791
+# If you see gem installation failing with "Killed" on CircleCI and `gem install --platform ruby grpc` reproduces the
+# issue when you connect to the testing container via ssh, then try lowering this file a notch.
+ENV GRPC_RUBY_BUILD_PROCS: 6
+
 RUN bundle install
diff --git a/integration/apps/sinatra2-classic/Dockerfile-ci b/integration/apps/sinatra2-classic/Dockerfile-ci
index 7eb3d041256..a9e720aeee0 100644
--- a/integration/apps/sinatra2-classic/Dockerfile-ci
+++ b/integration/apps/sinatra2-classic/Dockerfile-ci
@@ -8,6 +8,11 @@ COPY . /vendor/dd-trace-rb
 # Install dependencies
 ENV DD_DEMO_ENV_GEM_LOCAL_DDTRACE /vendor/dd-trace-rb
 
+# Override number of concurrent compiles in grpc gem, see https://github.com/grpc/grpc/pull/28250 and https://github.com/DataDog/dd-trace-rb/issues/1791
+# If you see gem installation failing with "Killed" on CircleCI and `gem install --platform ruby grpc` reproduces the
+# issue when you connect to the testing container via ssh, then try lowering this file a notch.
+ENV GRPC_RUBY_BUILD_PROCS: 6
+
 RUN /vendor/dd-demo/build_ddtrace_profiling_native_extension.rb
 
 RUN bundle install
diff --git a/integration/apps/sinatra2-modular/Dockerfile-ci b/integration/apps/sinatra2-modular/Dockerfile-ci
index 7eb3d041256..a9e720aeee0 100644
--- a/integration/apps/sinatra2-modular/Dockerfile-ci
+++ b/integration/apps/sinatra2-modular/Dockerfile-ci
@@ -8,6 +8,11 @@ COPY . /vendor/dd-trace-rb
 # Install dependencies
 ENV DD_DEMO_ENV_GEM_LOCAL_DDTRACE /vendor/dd-trace-rb
 
+# Override number of concurrent compiles in grpc gem, see https://github.com/grpc/grpc/pull/28250 and https://github.com/DataDog/dd-trace-rb/issues/1791
+# If you see gem installation failing with "Killed" on CircleCI and `gem install --platform ruby grpc` reproduces the
+# issue when you connect to the testing container via ssh, then try lowering this file a notch.
+ENV GRPC_RUBY_BUILD_PROCS: 6
+
 RUN /vendor/dd-demo/build_ddtrace_profiling_native_extension.rb
 
 RUN bundle install

From 3a5351f7055da1781d687930cf2ac7bfbf1a755a Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Mon, 17 Oct 2022 11:35:17 +0200
Subject: [PATCH 23/27] Revert "Use source for grpc and google-protobuf on Ruby
 preview"

This reverts commit ba1ef94b25b30fb7c87f121160005ed1ba6774f7.
---
 Gemfile | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/Gemfile b/Gemfile
index c314c22fc86..8874cbac957 100644
--- a/Gemfile
+++ b/Gemfile
@@ -76,11 +76,7 @@ gem 'opentracing', '>= 0.4.1'
 #       Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add
 #       to our CI, so we just shortcut and exclude specific versions that were affecting our CI.
 if RUBY_PLATFORM != 'java'
-  if RUBY_DESCRIPTION =~ /^ruby \d+\.\d+\.\d+preview/
-    # binary gems for these have a max ruby version requirement that excludes preview versions
-    gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'], platforms: ['ruby']
-    gem 'grpc', platforms: ['ruby']
-  elsif RUBY_VERSION >= '2.5.0' # Bundler 1.x fails to recognize that version >= 3.19.2 is not compatible with older rubies
+  if RUBY_VERSION >= '2.5.0' # Bundler 1.x fails to recognize that version >= 3.19.2 is not compatible with older rubies
     gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1']
   else
     gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2']

From ef66af990685dd8e91805dbe37ca3e8bc0b9a52b Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Mon, 17 Oct 2022 11:51:27 +0200
Subject: [PATCH 24/27] Simplify integration test spec requires

---
 spec/datadog/appsec/contrib/rack/integration_test_spec.rb   | 5 +----
 spec/datadog/appsec/contrib/rails/integration_test_spec.rb  | 2 ++
 .../datadog/appsec/contrib/sinatra/integration_test_spec.rb | 6 ------
 3 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/spec/datadog/appsec/contrib/rack/integration_test_spec.rb b/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
index 1d1876be611..9cd5b454faa 100644
--- a/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
+++ b/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
@@ -13,11 +13,8 @@
   require 'rack/contrib/post_body_content_type_parser'
 end
 
-require 'ddtrace'
-require 'datadog/tracing/contrib/rack/middlewares'
-
+require 'datadog/tracing'
 require 'datadog/appsec'
-require 'datadog/appsec/contrib/rack/request_middleware'
 
 RSpec.describe 'Rack integration tests' do
   include Rack::Test::Methods
diff --git a/spec/datadog/appsec/contrib/rails/integration_test_spec.rb b/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
index 13840d43baf..9a8ccf682a5 100644
--- a/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
+++ b/spec/datadog/appsec/contrib/rails/integration_test_spec.rb
@@ -1,7 +1,9 @@
 # typed: ignore
 
 require 'datadog/tracing/contrib/rails/rails_helper'
+require 'rack/test'
 
+require 'datadog/tracing'
 require 'datadog/appsec'
 
 RSpec.describe 'Rails integration tests' do
diff --git a/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb b/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb
index 4aca77cd78f..abf76737845 100644
--- a/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb
+++ b/spec/datadog/appsec/contrib/sinatra/integration_test_spec.rb
@@ -14,13 +14,7 @@
 end
 
 require 'datadog/tracing'
-require 'datadog/tracing/metadata/ext'
-require 'datadog/tracing/sampling/ext'
-require 'datadog/tracing/contrib/sinatra/ext'
-require 'datadog/tracing/contrib/sinatra/tracer'
-
 require 'datadog/appsec'
-require 'datadog/appsec/contrib/rack/request_middleware'
 
 RSpec.describe 'Sinatra integration tests' do
   include Rack::Test::Methods

From 8798f66e1274ef86c35fd04982aeaff84ade1a02 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Mon, 17 Oct 2022 11:51:53 +0200
Subject: [PATCH 25/27] Add disabled AppSec case for span shared examples on
 Rack

---
 .../contrib/rack/integration_test_spec.rb     | 32 +++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/spec/datadog/appsec/contrib/rack/integration_test_spec.rb b/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
index 9cd5b454faa..51f7d5dba8c 100644
--- a/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
+++ b/spec/datadog/appsec/contrib/rack/integration_test_spec.rb
@@ -64,24 +64,56 @@
       it { expect(span.get_tag('http.method')).to eq('GET') }
       it { expect(span.get_tag('http.status_code')).to eq('200') }
       it { expect(span.status).to eq(0) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it { expect(span.get_tag('http.method')).to eq('GET') }
+        it { expect(span.get_tag('http.status_code')).to eq('200') }
+        it { expect(span.status).to eq(0) }
+      end
     end
 
     shared_examples 'a GET 403 span' do
       it { expect(span.get_tag('http.method')).to eq('GET') }
       it { expect(span.get_tag('http.status_code')).to eq('403') }
       it { expect(span.status).to eq(0) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it { expect(span.get_tag('http.method')).to eq('GET') }
+        it { expect(span.get_tag('http.status_code')).to eq('403') }
+        it { expect(span.status).to eq(0) }
+      end
     end
 
     shared_examples 'a GET 404 span' do
       it { expect(span.get_tag('http.method')).to eq('GET') }
       it { expect(span.get_tag('http.status_code')).to eq('404') }
       it { expect(span.status).to eq(0) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it { expect(span.get_tag('http.method')).to eq('GET') }
+        it { expect(span.get_tag('http.status_code')).to eq('404') }
+        it { expect(span.status).to eq(0) }
+      end
     end
 
     shared_examples 'a POST 200 span' do
       it { expect(span.get_tag('http.method')).to eq('POST') }
       it { expect(span.get_tag('http.status_code')).to eq('200') }
       it { expect(span.status).to eq(0) }
+
+      context 'with appsec disabled' do
+        let(:appsec_enabled) { false }
+
+        it { expect(span.get_tag('http.method')).to eq('POST') }
+        it { expect(span.get_tag('http.status_code')).to eq('200') }
+        it { expect(span.status).to eq(0) }
+      end
     end
 
     shared_examples 'a trace without AppSec tags' do

From 5fff719f5e4862d8f1416acc791cc7f7ac69f657 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Mon, 17 Oct 2022 15:30:25 +0200
Subject: [PATCH 26/27] Simplify result status being match

---
 lib/datadog/appsec/contrib/rack/gateway/watcher.rb    | 9 +++------
 lib/datadog/appsec/contrib/rails/gateway/watcher.rb   | 3 +--
 lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb | 6 ++----
 3 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/lib/datadog/appsec/contrib/rack/gateway/watcher.rb b/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
index 01b476eb3bd..196a507b60d 100644
--- a/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/rack/gateway/watcher.rb
@@ -29,8 +29,7 @@ def self.watch
                   span = active_span
 
                   Rack::Reactive::Request.subscribe(op, waf_context) do |result, _block|
-                    record = [:match].include?(result.status)
-                    if record
+                    if result.status == :match
                       # TODO: should this hash be an Event instance instead?
                       event = {
                         waf_result: result,
@@ -71,8 +70,7 @@ def self.watch
                   span = active_span
 
                   Rack::Reactive::Response.subscribe(op, waf_context) do |result, _block|
-                    record = [:match].include?(result.status)
-                    if record
+                    if result.status == :match
                       # TODO: should this hash be an Event instance instead?
                       event = {
                         waf_result: result,
@@ -113,8 +111,7 @@ def self.watch
                   span = active_span
 
                   Rack::Reactive::RequestBody.subscribe(op, waf_context) do |result, _block|
-                    record = [:match].include?(result.status)
-                    if record
+                    if result.status == :match
                       # TODO: should this hash be an Event instance instead?
                       event = {
                         waf_result: result,
diff --git a/lib/datadog/appsec/contrib/rails/gateway/watcher.rb b/lib/datadog/appsec/contrib/rails/gateway/watcher.rb
index 8df2e145f31..f71c1dcddd1 100644
--- a/lib/datadog/appsec/contrib/rails/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/rails/gateway/watcher.rb
@@ -23,8 +23,7 @@ def self.watch
                   span = active_span
 
                   Rails::Reactive::Action.subscribe(op, waf_context) do |result, _block|
-                    record = [:match].include?(result.status)
-                    if record
+                    if result.status == :match
                       # TODO: should this hash be an Event instance instead?
                       event = {
                         waf_result: result,
diff --git a/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb b/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
index 5652a767085..42faf871552 100644
--- a/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
+++ b/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
@@ -25,8 +25,7 @@ def self.watch
                   span = active_span
 
                   Rack::Reactive::RequestBody.subscribe(op, waf_context) do |result, _block|
-                    record = [:match].include?(result.status)
-                    if record
+                    if result.status == :match
                       # TODO: should this hash be an Event instance instead?
                       event = {
                         waf_result: result,
@@ -67,8 +66,7 @@ def self.watch
                   span = active_span
 
                   Sinatra::Reactive::Routed.subscribe(op, waf_context) do |result, _block|
-                    record = [:match].include?(result.status)
-                    if record
+                    if result.status == :match
                       # TODO: should this hash be an Event instance instead?
                       event = {
                         waf_result: result,

From cdb04fe3d3e1cd72cdea033007bc5e465b63f685 Mon Sep 17 00:00:00 2001
From: Loic Nageleisen <loic.nageleisen@datadoghq.com>
Date: Mon, 17 Oct 2022 16:12:59 +0200
Subject: [PATCH 27/27] Add spec comments explaining result.actions assertions

---
 spec/datadog/appsec/processor_spec.rb | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/spec/datadog/appsec/processor_spec.rb b/spec/datadog/appsec/processor_spec.rb
index db1b3797d1e..cb39b489339 100644
--- a/spec/datadog/appsec/processor_spec.rb
+++ b/spec/datadog/appsec/processor_spec.rb
@@ -395,6 +395,10 @@
               ]
             end
 
+            # when the same attack is detected twice in the same context, it's
+            # only matching once therefore there's only one match result, thus
+            # one action list returned.
+
             it { expect(matches).to have_attributes(count: 1) }
             it { expect(data).to have_attributes(count: 1) }
             it { expect(actions).to eq [[]] }
@@ -408,6 +412,9 @@
               ]
             end
 
+            # when two attacks are detected in the same context there are two
+            # match results, thus two action lists, one for each.
+
             it { expect(matches).to have_attributes(count: 2) }
             it { expect(data).to have_attributes(count: 2) }
             it { expect(actions).to eq [[], []] }