diff --git a/third_party/rust/cargo/remote/BUILD.backtrace-0.3.69.bazel b/third_party/rust/cargo/remote/BUILD.backtrace-0.3.69.bazel
new file mode 100644
index 0000000..43d0e4f
--- /dev/null
+++ b/third_party/rust/cargo/remote/BUILD.backtrace-0.3.69.bazel
@@ -0,0 +1,119 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_proc_macro",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//third_party/rust/cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+# buildifier: disable=out-of-order-load
+# buildifier: disable=load-on-top
+load(
+    "@rules_rust//cargo:cargo_build_script.bzl",
+    "cargo_build_script",
+)
+
+cargo_build_script(
+    name = "backtrace_build_script",
+    srcs = glob(["**/*.rs"]),
+    build_script_env = {
+    },
+    crate_root = "build.rs",
+    data = glob(["**"]),
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.3.69",
+    visibility = ["//visibility:private"],
+    deps = [
+        "@raze__cc__1_0_83//:cc",
+    ] + selects.with_or({
+        (
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+# Unsupported target "benchmarks" with type "bench" omitted
+
+# Unsupported target "backtrace" with type "example" omitted
+
+# Unsupported target "raw" with type "example" omitted
+
+rust_library(
+    name = "backtrace",
+    srcs = glob(["**/*.rs"]),
+    aliases = {
+    },
+    crate_root = "src/lib.rs",
+    data = [],
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "crate-name=backtrace",
+        "manual",
+    ],
+    version = "0.3.69",
+    # buildifier: leave-alone
+    deps = [
+        ":backtrace_build_script",
+        "@raze__cfg_if__1_0_0//:cfg_if",
+        "@raze__rustc_demangle__0_1_23//:rustc_demangle",
+    ] + selects.with_or({
+        (
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            "@raze__addr2line__0_21_0//:addr2line",
+            "@raze__libc__0_2_148//:libc",
+            "@raze__miniz_oxide__0_7_1//:miniz_oxide",
+            "@raze__object__0_32_1//:object",
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+# Unsupported target "accuracy" with type "test" omitted
+
+# Unsupported target "concurrent-panics" with type "test" omitted
+
+# Unsupported target "current-exe-mismatch" with type "test" omitted
+
+# Unsupported target "long_fn_name" with type "test" omitted
+
+# Unsupported target "skip_inner_frames" with type "test" omitted
+
+# Unsupported target "smoke" with type "test" omitted
