Roll abseil, build, buildtools, libc++, and rust

In order to roll, perform the following:
1. Update skia/BUILD.gn to match the font versions in
   https://crrev.com/c/6909036.
2. Update test expectations in RetainPtr.SetContains.

Roll third_party/abseil-cpp/ 77596c036..04fe3ac35 (7 commits)

https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp.git/+log/77596c0368ff..04fe3ac35a94


Roll build/ ac578f1d4..4d26bd650 (189 commits)

https://chromium.googlesource.com/chromium/src/build.git/+log/ac578f1d4331..4d26bd65009c


Roll buildtools/ 460cef896..10b037a66 (41 commits)

https://chromium.googlesource.com/chromium/src/buildtools.git/+log/460cef896790..10b037a661ec


Roll third_party/libc++/src/ adbb4a521..954086abf (91 commits)

https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/adbb4a5210ae..954086abf121


Roll third_party/rust/ 5f298b3f4..ea2d1926a (51 commits)

https://chromium.googlesource.com/chromium/src/third_party/rust/+log/5f298b3f4b00..ea2d1926aaa5

Change-Id: I44398ecf727111c68599361a0ade428b5ae50255
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/135590
Commit-Queue: Andy Phan <andyphan@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/DEPS b/DEPS
index d00d0cf..7f63526 100644
--- a/DEPS
+++ b/DEPS
@@ -70,7 +70,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling abseil
   # and whatever else without interference from each other.
-  'abseil_revision': '1e18dc54a045a632de52d420e9636072662841b4',
+  'abseil_revision': '04fe3ac35a94bbeeb04f859f84254df6a43590c5',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling android_toolchain
   # and whatever else without interference from each other.
@@ -78,11 +78,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling build
   # and whatever else without interference from each other.
-  'build_revision': 'ac578f1d43317d83f78eff4d568da3942269842f',
+  'build_revision': '4d26bd65009cd6178f67a15c8888b24f6f4f1981',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling buildtools
   # and whatever else without interference from each other.
-  'buildtools_revision': '460cef8967904d3a5fcfad728eb33db0c3a7da70',
+  'buildtools_revision': '10b037a661ecbc8b2e8c4f85c653d36d1d82cc36',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling catapult
   # and whatever else without interference from each other.
@@ -160,7 +160,7 @@
   # and whatever else without interference from each other.
   # If you change this, also update the libc++ revision in
   # //buildtools/deps_revisions.gni.
-  'libcxx_revision': 'adbb4a5210ae2a8a4e27fa6199221156c02a9b1a',
+  'libcxx_revision': '954086abf1216d110534fb3e21d8e86d6703cefb',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libc++abi
   # and whatever else without interference from each other.
@@ -204,7 +204,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling rust
   # and whatever else without interference from each other.
-  'rust_revision': '5f298b3f4b007718375bd45a6ef7ba0681aa4c26',
+  'rust_revision': 'ea2d1926aaa51543b41df196cf7f56f32a49d123',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling simdutf
   # and whatever else without interference from each other.
diff --git a/core/fxcrt/retain_ptr_unittest.cpp b/core/fxcrt/retain_ptr_unittest.cpp
index 65fb909..ad5c22f 100644
--- a/core/fxcrt/retain_ptr_unittest.cpp
+++ b/core/fxcrt/retain_ptr_unittest.cpp
@@ -488,15 +488,21 @@
   EXPECT_EQ(2, obj2.retain_count());
   EXPECT_EQ(0, obj2.release_count());
 
-  // These involve const-removing conversions which seem to churn.
+  // These involve const-removing conversions which seem to churn when sets
+  // contain the pointer.
   EXPECT_NE(the_set.end(), the_set.find(ptr1));
   EXPECT_EQ(the_set.end(), the_set.find(ptr2));
   EXPECT_TRUE(pdfium::Contains(the_set, ptr1));
   EXPECT_FALSE(pdfium::Contains(the_set, ptr2));
-  EXPECT_EQ(5, obj1.retain_count());
-  EXPECT_EQ(2, obj1.release_count());
-  EXPECT_EQ(4, obj2.retain_count());
-  EXPECT_EQ(2, obj2.release_count());
+#if defined(ADDRESS_SANITIZER) || defined(MEMORY_SANITIZER)
+  constexpr int kExpectedObj2RetainCount = 4;
+  constexpr int kExpectedObj2ReleaseCount = 2;
+#else
+  constexpr int kExpectedObj2RetainCount = 2;
+  constexpr int kExpectedObj2ReleaseCount = 0;
+#endif  // defined(ADDRESS_SANITIZER) || defined(MEMORY_SANITIZER)
+  EXPECT_EQ(kExpectedObj2RetainCount, obj2.retain_count());
+  EXPECT_EQ(kExpectedObj2ReleaseCount, obj2.release_count());
 }
 
 TEST(RetainPtr, VectorContains) {
diff --git a/skia/BUILD.gn b/skia/BUILD.gn
index 47f3eda..62d63ca 100644
--- a/skia/BUILD.gn
+++ b/skia/BUILD.gn
@@ -39,8 +39,8 @@
     deps = [
       ":path_bridge",
       "//third_party/rust/font_types/v0_9:lib",
-      "//third_party/rust/read_fonts/v0_31:lib",
-      "//third_party/rust/skrifa/v0_33:lib",
+      "//third_party/rust/read_fonts/v0_34:lib",
+      "//third_party/rust/skrifa/v0_36:lib",
     ]
     configs -= [ "//build/config/compiler:chromium_code" ]
     configs += [