diff --git a/AFDO_SUMMARY.txt b/AFDO_SUMMARY.txt
index fae8b2b..d25bd4f 100644
--- a/AFDO_SUMMARY.txt
+++ b/AFDO_SUMMARY.txt
@@ -11,35 +11,35 @@
 <rusqlite::row::Row>::get::<usize, i32>
 <watchdog_rs::WatchPoint as core::ops::drop::Drop>::drop
 <&[&dyn rusqlite::types::to_sql::ToSql] as rusqlite::params::Params>::__bind_in
+<rusqlite::row::Rows>::next
 <keystore2::key_parameter::KeyParameterValue>::new_from_sql
 <keystore2::database::KeystoreDB>::load_key_parameters
-<rusqlite::row::Rows>::next
 <i32 as binder::parcel::parcelable::Deserialize>::deserialize
+<keystore2::security_level::KeystoreSecurityLevel>::store_new_key
 <binder::parcel::BorrowedParcel>::set_data_position
 <core::hash::sip::Hasher<core::hash::sip::Sip13Rounds> as core::hash::Hasher>::write
 <android_hardware_security_keymint::aidl::android::hardware::security::keymint::KeyParameter::KeyParameter as binder::parcel::parcelable::Parcelable>::write_to_parcel
 <keystore2::security_level::KeystoreSecurityLevel>::create_operation
-<keystore2::security_level::KeystoreSecurityLevel>::store_new_key
 
 
 sampling/libart_arm64.afdo
 ====
 void art::mirror::Object::VisitReferences<true, (art::VerifyObjectFlags)0, (art::ReadBarrierOption)0, art::gc::collector::MarkCompact::RefFieldsVisitor, art::gc::collector::MarkCompact::RefFieldsVisitor>(art::gc::collector::MarkCompact::RefFieldsVisitor const&, art::gc::collector::MarkCompact::RefFieldsVisitor const&)
-art::gc::collector::MarkCompact::CompactPage(art::mirror::Object*, unsigned int, unsigned char*, bool)
 art::CodeInfo::CodeInfo(unsigned char const*, unsigned long*)
 art::CodeInfo::CodeInfo(unsigned char const*, unsigned long*)
 void art::StackVisitor::WalkStack<(art::StackVisitor::CountTransitions)0>(bool)
+art::gc::collector::MarkCompact::CompactPage(art::mirror::Object*, unsigned int, unsigned char*, bool)
 art::gc::collector::MarkCompact::MarkingPhase()
 art::CodeInfo::GetStackMapForNativePcOffset(unsigned long, art::InstructionSet) const::$_0::operator()(art::StackMap const&) const (.__uniq.171155442776020490977508519835528948535)
 art::StackVisitor::GetDexPc(bool) const
-art::GlobalValueNumberer::Run()
-void art::mirror::Class::VisitReferences<true, (art::VerifyObjectFlags)0, (art::ReadBarrierOption)0, art::gc::collector::MarkCompact::RefFieldsVisitor>(art::ObjPtr<art::mirror::Class>, art::gc::collector::MarkCompact::RefFieldsVisitor const&)
 void art::Monitor::Lock<(art::LockReason)1>(art::Thread*)
+void art::mirror::Class::VisitReferences<true, (art::VerifyObjectFlags)0, (art::ReadBarrierOption)0, art::gc::collector::MarkCompact::RefFieldsVisitor>(art::ObjPtr<art::mirror::Class>, art::gc::collector::MarkCompact::RefFieldsVisitor const&)
 art::System_arraycopy(_JNIEnv*, _jclass*, _jobject*, int, _jobject*, int, int) (.__uniq.110717464938643750821353004938495288567)
-art::RegisterAllocatorLinearScan::LinearScan()
-art::gc::collector::MarkCompact::MapMovingSpacePages(unsigned long, unsigned long, bool, bool)
+art::GlobalValueNumberer::Run()
+art::Monitor::MonitorExit(art::Thread*, art::ObjPtr<art::mirror::Object>)
+art::StringFactory_newStringFromBytes(_JNIEnv*, _jclass*, _jbyteArray*, int, int, int) (.__uniq.69738951954755148529605360874931303746)
 unsigned long art::mirror::Object::VisitRefsForCompaction<true, false, (art::VerifyObjectFlags)0, (art::ReadBarrierOption)2, art::gc::collector::MarkCompact::RefsUpdateVisitor<false, false>>(art::gc::collector::MarkCompact::RefsUpdateVisitor<false, false> const&, art::MemberOffset, art::MemberOffset)
-NterpGetMethod
+art::gc::collector::MarkCompact::MapMovingSpacePages(unsigned long, unsigned long, bool, bool)
 
 
 sampling/libartbase_arm64.afdo
@@ -54,8 +54,8 @@
 art::ArenaBitVectorAllocator<art::ScopedArenaAllocator>::Alloc(unsigned long)
 art::ScopedArenaAllocator::~ScopedArenaAllocator()
 art::ScopedArenaAllocator::~ScopedArenaAllocator()
-std::__1::__murmur2_or_cityhash<unsigned long, 64ul>::__hash_len_33_to_64[abi:v180000](char const*, unsigned long)
 art::BitVector::UnionIfNotIn(art::BitVector const*, art::BitVector const*)
+std::__1::__murmur2_or_cityhash<unsigned long, 64ul>::__hash_len_33_to_64[abi:v180000](char const*, unsigned long)
 art::ScopedArenaAllocator::ScopedArenaAllocator(art::ArenaStack*)
 art::ScopedArenaAllocator::ScopedArenaAllocator(art::ArenaStack*)
 art::BitVector::~BitVector()
@@ -67,8 +67,8 @@
 android::Parcel::writeInt32(int)
 android::Parcel::readInt32(int*) const
 android::IPCThreadState::executeCommand(int)
-android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)
 android::Parcel::writeInt64(long)
+android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)
 android::Parcel::readInt32() const
 android::Parcel::writeInplace(unsigned long)
 android::IPCThreadState::joinThreadPool(bool)
@@ -77,69 +77,49 @@
 android::Parcel::freeDataNoInit()
 android::Parcel::enforceInterface(char16_t const*, unsigned long, android::IPCThreadState*) const
 android::Parcel::flattenBinder(android::sp<android::IBinder> const&)
-android::Parcel::readString8Inplace(unsigned long*) const
 android::Parcel::readString16Inplace(unsigned long*) const
 android::Parcel::unflattenBinder(android::sp<android::IBinder>*) const
+android::Parcel::readString8Inplace(unsigned long*) const
 
 
 sampling/libbinder_ndk.afdo
 ====
 PruneStatusT(int)
 AParcel_getDataPosition
-int ReadArray<char16_t>(AParcel const*, void*, bool (*)(void*, int, char16_t**))
 AParcel_writeInt32
+int ReadArray<char16_t>(AParcel const*, void*, bool (*)(void*, int, char16_t**))
 AParcel_readParcelableArray
 AParcel_setDataPosition
 AParcel_readInt32
 int WriteArray<char16_t>(AParcel*, char16_t const*, int)
 AParcel_writeParcelableArray
 AIBinder_transact
+int ReadArray<int>(AParcel const*, void*, bool (*)(void*, int, int**))
+int ReadArray<float>(AParcel const*, void*, bool (*)(void*, int, float**))
+int ReadArray<unsigned int>(AParcel const*, void*, bool (*)(void*, int, unsigned int**))
 AIBinder_prepareTransaction
 ABBinder::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)
-int ReadArray<float>(AParcel const*, void*, bool (*)(void*, int, float**))
-int ReadArray<int>(AParcel const*, void*, bool (*)(void*, int, int**))
-int ReadArray<unsigned int>(AParcel const*, void*, bool (*)(void*, int, unsigned int**))
-int ReadArray<signed char>(AParcel const*, void*, bool (*)(void*, int, signed char**))
-
-
-sampling/libc++.afdo
-====
-std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::push_back(char)
-operator new(unsigned long)
-std::__1::chrono::steady_clock::now()
-std::__1::mutex::lock()
-std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)
-std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)
-std::__1::mutex::unlock()
-std::__1::locale::use_facet(std::__1::locale::id&) const
-std::__1::basic_streambuf<char, std::__1::char_traits<char>>::xsputn(char const*, long)
-std::__1::basic_istream<char, std::__1::char_traits<char>>::sentry::sentry(std::__1::basic_istream<char, std::__1::char_traits<char>>&, bool)
-std::__1::basic_istream<char, std::__1::char_traits<char>>::sentry::sentry(std::__1::basic_istream<char, std::__1::char_traits<char>>&, bool)
-std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::__grow_by(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)
-std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)
-std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::resize(unsigned long, char)
-std::__1::ios_base::clear(unsigned int)
-std::__1::__shared_count::__release_shared()
+AParcel_writeInt64
 
 
 sampling/libcrypto.afdo
 ====
-x25519_scalar_mult(unsigned char*, unsigned char const*, unsigned char const*) (.__uniq.109856273396369999403303195100881690741)
-sha256_final_impl
 md5_block_data_order
-asn1_item_ex_d2i(ASN1_VALUE_st**, unsigned char const**, long, ASN1_ITEM_st const*, int, int, char, crypto_buffer_st*, int) (.__uniq.139495086114298263346785830436186242392)
-SHA256_Update
 x25519_ge_scalarmult_small_precomp
+x25519_scalar_mult(unsigned char*, unsigned char const*, unsigned char const*) (.__uniq.109856273396369999403303195100881690741)
 fiat_p256_square
-asn1_template_ex_i2d(ASN1_VALUE_st**, unsigned char**, ASN1_TEMPLATE_st const*, int, int, int) (.__uniq.134356580608062550886839418692065631962)
-OPENSSL_free
-asn1_item_ex_i2d_opt(ASN1_VALUE_st**, unsigned char**, ASN1_ITEM_st const*, int, int, int) (.__uniq.134356580608062550886839418692065631962)
-bn_mul_add_words
 fiat_p256_mul
-CRYPTO_get_thread_local
-ASN1_mbstring_copy
-ASN1_get_object
-ASN1_item_ex_new
+asn1_item_ex_d2i(ASN1_VALUE_st**, unsigned char const**, long, ASN1_ITEM_st const*, int, int, char, crypto_buffer_st*, int) (.__uniq.139495086114298263346785830436186242392)
+copy_from_prebuf
+sha256_final_impl
+OPENSSL_free
+SHA256_Update
+bn_mul_add_words
+asn1_template_ex_i2d(ASN1_VALUE_st**, unsigned char**, ASN1_TEMPLATE_st const*, int, int, int) (.__uniq.134356580608062550886839418692065631962)
+fiat_p256_point_double
+asn1_item_ex_i2d_opt(ASN1_VALUE_st**, unsigned char**, ASN1_ITEM_st const*, int, int, int) (.__uniq.134356580608062550886839418692065631962)
+EVP_DecodeUpdate
+fe_loose_invert(fe*, fe_loose const*) (.__uniq.109856273396369999403303195100881690741)
 
 
 sampling/libgui.afdo
@@ -149,37 +129,37 @@
 android::SurfaceComposerClient::Transaction::getLayerState(android::sp<android::SurfaceControl> const&)
 android::BLASTBufferItemConsumer::addAndGetFrameTimestamps(android::NewFrameEventsEntry const*, android::FrameEventHistoryDelta*)
 android::SurfaceComposerClient::TCLHash::operator()(android::sp<android::ITransactionCompletedListener> const&) const
-android::BnSurfaceComposer::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)
-android::layer_state_t::read(android::Parcel const&)
 android::BufferQueueProducer::queueBuffer(int, android::IGraphicBufferProducer::QueueBufferInput const&, android::IGraphicBufferProducer::QueueBufferOutput*)
+android::layer_state_t::read(android::Parcel const&)
+android::BnSurfaceComposer::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)
 std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<android::sp<android::IBinder>, android::sp<android::SurfaceControl>>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<android::sp<android::IBinder>, android::sp<android::SurfaceControl>>, void*>>>> std::__1::__hash_table<std::__1::__hash_value_type<android::sp<android::IBinder>, android::sp<android::SurfaceControl>>, std::__1::__unordered_map_hasher<android::sp<android::IBinder>, std::__1::__hash_value_type<android::sp<android::IBinder>, android::sp<android::SurfaceControl>>, android::SurfaceComposerClient::IBinderHash, std::__1::equal_to<android::sp<android::IBinder>>, true>, std::__1::__unordered_map_equal<android::sp<android::IBinder>, std::__1::__hash_value_type<android::sp<android::IBinder>, android::sp<android::SurfaceControl>>, std::__1::equal_to<android::sp<android::IBinder>>, android::SurfaceComposerClient::IBinderHash, true>, std::__1::allocator<std::__1::__hash_value_type<android::sp<android::IBinder>, android::sp<android::SurfaceControl>>>>::__construct_node<std::__1::piecewise_construct_t const&, std::__1::tuple<android::sp<android::IBinder>&&>, std::__1::tuple<android::sp<android::SurfaceControl> const&>>(std::__1::piecewise_construct_t const&, std::__1::tuple<android::sp<android::IBinder>&&>&&, std::__1::tuple<android::sp<android::SurfaceControl> const&>&&)
 std::__1::vector<android::ReleaseCallbackId, std::__1::allocator<android::ReleaseCallbackId>>::__destroy_vector::operator()[abi:v180000]()
 std::__1::vector<android::CallbackId, std::__1::allocator<android::CallbackId>>::__destroy_vector::operator()[abi:v180000]()
 std::__1::vector<android::gui::HdrConversionCapability, std::__1::allocator<android::gui::HdrConversionCapability>>::__destroy_vector::operator()[abi:v180000]()
 android::BufferQueueProducer::dequeueBuffer(int*, android::sp<android::Fence>*, unsigned int, unsigned int, int, unsigned long, unsigned long*, android::FrameEventHistoryDelta*)
 std::__1::pair<std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<android::sp<android::IBinder>, android::ComposerState>, void*>*>, bool> std::__1::__hash_table<std::__1::__hash_value_type<android::sp<android::IBinder>, android::ComposerState>, std::__1::__unordered_map_hasher<android::sp<android::IBinder>, std::__1::__hash_value_type<android::sp<android::IBinder>, android::ComposerState>, android::SurfaceComposerClient::IBinderHash, std::__1::equal_to<android::sp<android::IBinder>>, true>, std::__1::__unordered_map_equal<android::sp<android::IBinder>, std::__1::__hash_value_type<android::sp<android::IBinder>, android::ComposerState>, std::__1::equal_to<android::sp<android::IBinder>>, android::SurfaceComposerClient::IBinderHash, true>, std::__1::allocator<std::__1::__hash_value_type<android::sp<android::IBinder>, android::ComposerState>>>::__emplace_unique_key_args<android::sp<android::IBinder>, std::__1::piecewise_construct_t const&, std::__1::tuple<android::sp<android::IBinder> const&>, std::__1::tuple<>>(android::sp<android::IBinder> const&, std::__1::piecewise_construct_t const&, std::__1::tuple<android::sp<android::IBinder> const&>&&, std::__1::tuple<>&&)
-android::layer_state_t::write(android::Parcel&) const
-android::SurfaceComposerClient::Transaction::apply(bool, bool)
+void std::__1::__hash_table<std::__1::__hash_value_type<android::ReleaseCallbackId, std::__1::function<void (android::ReleaseCallbackId const&, android::sp<android::Fence> const&, std::__1::optional<unsigned int>)>>, std::__1::__unordered_map_hasher<android::ReleaseCallbackId, std::__1::__hash_value_type<android::ReleaseCallbackId, std::__1::function<void (android::ReleaseCallbackId const&, android::sp<android::Fence> const&, std::__1::optional<unsigned int>)>>, android::ReleaseBufferCallbackIdHash, std::__1::equal_to<android::ReleaseCallbackId>, true>, std::__1::__unordered_map_equal<android::ReleaseCallbackId, std::__1::__hash_value_type<android::ReleaseCallbackId, std::__1::function<void (android::ReleaseCallbackId const&, android::sp<android::Fence> const&, std::__1::optional<unsigned int>)>>, std::__1::equal_to<android::ReleaseCallbackId>, android::ReleaseBufferCallbackIdHash, true>, std::__1::allocator<std::__1::__hash_value_type<android::ReleaseCallbackId, std::__1::function<void (android::ReleaseCallbackId const&, android::sp<android::Fence> const&, std::__1::optional<unsigned int>)>>>>::__do_rehash<true>(unsigned long)
+void std::__1::__hash_table<std::__1::__hash_value_type<unsigned int, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>>, std::__1::__unordered_map_hasher<unsigned int, std::__1::__hash_value_type<unsigned int, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>>, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, true>, std::__1::__unordered_map_equal<unsigned int, std::__1::__hash_value_type<unsigned int, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>>, std::__1::equal_to<unsigned int>, std::__1::hash<unsigned int>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned int, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>>>>::__do_rehash<true>(unsigned long)
 
 
 sampling/libharfbuzz_ng.afdo
 ====
 apply_forward(OT::hb_ot_apply_context_t*, OT::hb_ot_layout_lookup_accelerator_t const&, unsigned int) (.__uniq.112624515275334661450839245565361455594)
+hb_ucd_script(hb_unicode_funcs_t*, unsigned int, void*) (.__uniq.59232151634540459760808551162038034331)
 OT::Layout::Common::Coverage::get_coverage(unsigned int) const
 _hb_ot_shape
-hb_ucd_script(hb_unicode_funcs_t*, unsigned int, void*) (.__uniq.59232151634540459760808551162038034331)
 hb_font_t::get_glyph_h_origin_with_fallback(unsigned int, int*, int*)
-OT::Layout::GPOS_impl::PairPosFormat1_3<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*) const
-OT::Layout::GPOS_impl::PairPosFormat2_4<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*) const
 void hb_ot_map_t::apply<GSUBProxy>(GSUBProxy const&, hb_ot_shape_plan_t const*, hb_font_t*, hb_buffer_t*) const
+OT::Layout::GPOS_impl::PairPosFormat2_4<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*) const
+OT::Layout::GPOS_impl::PairPosFormat1_3<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*) const
+hb_ucd_get_unicode_funcs
 OT::hb_ot_apply_context_t::hb_ot_apply_context_t(unsigned int, hb_font_t*, hb_buffer_t*, hb_blob_t*)
 OT::ClassDef::get_class(unsigned int) const
 OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*) const
-hb_ucd_get_unicode_funcs
 void hb_ot_map_t::apply<GPOSProxy>(GPOSProxy const&, hb_ot_shape_plan_t const*, hb_font_t*, hb_buffer_t*) const
-OT::CmapSubtableFormat4::accelerator_t::get_glyph(unsigned int, unsigned int*) const
-decompose_current_character(hb_ot_shape_normalize_context_t const*, bool) (.__uniq.72545019590190543042994610219996768413)
+OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*) const
 _hb_glyph_info_set_unicode_props(hb_glyph_info_t*, hb_buffer_t*) (.__uniq.331467699863711431102761276472569780985)
+hb_buffer_add_utf16
 
 
 sampling/libhidlbase.afdo
@@ -191,35 +171,35 @@
 android::hardware::details::return_status::onValueRetrieval() const
 android::hardware::IPCThreadState::selfOrNull()
 android::hardware::hidl_string::copyFrom(char const*, unsigned long)
-android::hardware::Parcel::readNullableNativeHandleNoDup(native_handle const**, bool, unsigned long, unsigned long) const
 android::hardware::hidl_string::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)
 android::hardware::IPCThreadState::transact(int, unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int)
+android::hardware::Parcel::readNullableNativeHandleNoDup(native_handle const**, bool, unsigned long, unsigned long) const
 android::hardware::hidl_string::~hidl_string()
 android::hardware::hidl_string::~hidl_string()
 android::hardware::Parcel::freeDataNoInit()
-android::hardware::Parcel::ipcSetDataReference(unsigned char const*, unsigned long, unsigned long long const*, unsigned long, void (*)(android::hardware::Parcel*, unsigned char const*, unsigned long, unsigned long long const*, unsigned long, void*), void*)
 android::hardware::Parcel::setDataSize(unsigned long)
-android::hardware::IPCThreadState::executeCommand(int)
+android::hardware::Parcel::ipcSetDataReference(unsigned char const*, unsigned long, unsigned long long const*, unsigned long, void (*)(android::hardware::Parcel*, unsigned char const*, unsigned long, unsigned long long const*, unsigned long, void*), void*)
+android::hardware::Parcel::writeBuffer(void const*, unsigned long, unsigned long*)
 
 
 sampling/libhwui_arm64.afdo
 ====
-android::FileBlobCache::FileBlobCache(unsigned long, unsigned long, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)
 neon::lowp::bilerp_clamp_8888(SkRasterPipelineStage*, unsigned long, unsigned long, unsigned short vector[8], unsigned short vector[8], unsigned short vector[8], unsigned short vector[8], unsigned short vector[8], unsigned short vector[8], unsigned short vector[8], unsigned short vector[8]) (.__uniq.171973291814702829445853707239222793327)
 android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)
-GetCoeffsFast(VP8BitReader*, VP8BandProbas const* const*, int, int const*, int, short*) (.__uniq.221674093421751675605877729630738212549)
 SkMatrixPriv::MapRect(SkM44 const&, SkRect const&)
 skgpu::KeyBuilder::addBits(unsigned int, unsigned int, std::__1::basic_string_view<char, std::__1::char_traits<char>>)
+GetCoeffsFast(VP8BitReader*, VP8BandProbas const* const*, int, int const*, int, short*) (.__uniq.221674093421751675605877729630738212549)
 skgpu::ganesh::ClipStack::clip(skgpu::ganesh::ClipStack::RawElement&&)
 android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const
 neon::S32_alpha_D32_filter_DX(SkBitmapProcState const&, unsigned int const*, int, unsigned int*)
+android::FileBlobCache::FileBlobCache(unsigned long, unsigned long, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)
 android::uirenderer::skiapipeline::RenderNodeDrawable::onDraw(SkCanvas*)
-aaa_walk_edges(SkAnalyticEdge*, SkAnalyticEdge*, SkPathFillType, AdditiveBlitter*, int, int, int, int, bool, bool, bool, bool) (.__uniq.264207111679842201773772860248711733734)
 android::uirenderer::DamageAccumulator::popTransform()
 android::uirenderer::skiapipeline::RenderNodeDrawable::setViewProperties(android::uirenderer::RenderProperties const&, SkCanvas*, float*, bool)
-neon::bilerp_clamp_8888(SkRasterPipelineStage*, unsigned long, unsigned long, std::byte*, float vector[4], float vector[4], float vector[4], float vector[4], float vector[4], float vector[4], float vector[4], float vector[4]) (.__uniq.171973291814702829445853707239222793327)
-sktext::gpu::TextBlobRedrawCoordinator::findOrCreateBlob(SkMatrix const&, sktext::GlyphRunList const&, SkPaint const&, SkStrikeDeviceInfo)
 void filter_scale<&clamp(int, int), &clamp(int, int), &extract_low_bits_clamp_clamp(int, int), true>(SkBitmapProcState const&, unsigned int*, int, int, int) (.__uniq.325964652190161525160875187559210144483)
+aaa_walk_edges(SkAnalyticEdge*, SkAnalyticEdge*, SkPathFillType, AdditiveBlitter*, int, int, int, int, bool, bool, bool, bool) (.__uniq.264207111679842201773772860248711733734)
+sktext::gpu::TextBlobRedrawCoordinator::findOrCreateBlob(SkMatrix const&, sktext::GlyphRunList const&, SkPaint const&, SkStrikeDeviceInfo)
+neon::bilerp_clamp_8888(SkRasterPipelineStage*, unsigned long, unsigned long, std::byte*, float vector[4], float vector[4], float vector[4], float vector[4], float vector[4], float vector[4], float vector[4], float vector[4]) (.__uniq.171973291814702829445853707239222793327)
 
 
 sampling/liblog.afdo
@@ -228,36 +208,37 @@
 __android_log_is_loggable
 PmsgWrite(log_id, timespec*, iovec*, unsigned long)
 LogdWrite(log_id, timespec*, iovec*, unsigned long)
-__android_log_get_minimum_priority
 write_to_log(log_id, iovec*, unsigned long) (.__uniq.220335083604911598582518859745105420324)
 __android_log_logd_logger
+__android_log_get_minimum_priority
 __android_log_buf_write
 log_to_file_if_overridden(__android_log_message const*) (.__uniq.220335083604911598582518859745105420324)
 __android_log_print
-GetDefaultTag()
 android::base::ErrnoRestorer::ErrnoRestorer()
+GetDefaultTag()
 android::base::ErrnoRestorer::~ErrnoRestorer()
+__android_log_is_loggable_len
 android_log_write_int64
 
 
 sampling/libminikin.afdo
 ====
 minikin::FontCollection::init(std::__1::vector<std::__1::shared_ptr<minikin::FontFamily>, std::__1::allocator<std::__1::shared_ptr<minikin::FontFamily>>> const&)
-minikin::getNextWordBreakForCache(minikin::U16StringPiece const&, unsigned int) (.cfi)
 minikin::LayoutCacheKey::computeHash() const
 minikin::LayoutCacheKey::operator==(minikin::LayoutCacheKey const&) const
-minikin::getPrevWordBreakForCache(minikin::U16StringPiece const&, unsigned int) (.cfi)
+minikin::getNextWordBreakForCache(minikin::U16StringPiece const&, unsigned int) (.cfi)
 std::__1::__hash_iterator<std::__1::__hash_node<android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::KeyedEntry*, void*>*> std::__1::__hash_table<android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::KeyedEntry*, android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::HashForEntry, android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::EqualityForHashedEntries, std::__1::allocator<android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::KeyedEntry*>>::find<android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::KeyedEntry*>(android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::KeyedEntry* const&)
 android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::get(minikin::LayoutCacheKey const&)
-minikin::FontCollection::FontCollection(minikin::BufferReader*, std::__1::shared_ptr<std::__1::vector<std::__1::shared_ptr<minikin::FontFamily>, std::__1::allocator<std::__1::shared_ptr<minikin::FontFamily>>>> const&)
-minikin::FontCollection::FontCollection(minikin::BufferReader*, std::__1::shared_ptr<std::__1::vector<std::__1::shared_ptr<minikin::FontFamily>, std::__1::allocator<std::__1::shared_ptr<minikin::FontFamily>>>> const&)
+minikin::getPrevWordBreakForCache(minikin::U16StringPiece const&, unsigned int) (.cfi)
 minikin::LayoutCacheKey::LayoutCacheKey(minikin::U16StringPiece const&, minikin::Range const&, minikin::MinikinPaint const&, bool, minikin::StartHyphenEdit, minikin::EndHyphenEdit)
 minikin::Layout::appendLayout(minikin::LayoutPiece const&, unsigned long, float)
-minikin::Layout::doLayoutRunCached(minikin::U16StringPiece const&, minikin::Range const&, bool, minikin::MinikinPaint const&, unsigned long, minikin::StartHyphenEdit, minikin::EndHyphenEdit, minikin::Layout*, float*, minikin::MinikinRect*, unsigned int*) (.cfi)
 minikin::Layout::doLayoutWord(unsigned short const*, unsigned long, unsigned long, unsigned long, bool, minikin::MinikinPaint const&, unsigned long, minikin::StartHyphenEdit, minikin::EndHyphenEdit, minikin::Layout*, float*, minikin::MinikinRect*, unsigned int*) (.cfi)
+minikin::Layout::doLayoutRunCached(minikin::U16StringPiece const&, minikin::Range const&, bool, minikin::MinikinPaint const&, unsigned long, minikin::StartHyphenEdit, minikin::EndHyphenEdit, minikin::Layout*, float*, minikin::MinikinRect*, unsigned int*) (.cfi)
 minikin::Font::ExternalRefs::getAdjustedTypeface(int, int) const
 void minikin::LayoutCache::getOrCreate<minikin::LayoutAppendFunctor>(minikin::U16StringPiece const&, minikin::Range const&, minikin::MinikinPaint const&, bool, minikin::StartHyphenEdit, minikin::EndHyphenEdit, bool, minikin::LayoutAppendFunctor&)
-minikin::(anonymous namespace)::LineBreakOptimizer::computeBreaks(minikin::(anonymous namespace)::OptimizeContext const&, minikin::U16StringPiece const&, minikin::MeasuredText const&, minikin::LineWidth const&, minikin::BreakStrategy, bool, bool) (.__uniq.50078111046383580986428084316182185247)
+minikin::adjustGlyphLetterSpacingEdge(minikin::U16StringPiece const&, minikin::MinikinPaint const&, minikin::RunFlag, std::__1::vector<minikin::LayoutGlyph, std::__1::allocator<minikin::LayoutGlyph>>*) (.cfi)
+minikin::Font::getExternalRefs() const
+minikin::LayoutAppendFunctor::operator()(minikin::LayoutPiece const&, minikin::MinikinPaint const&, minikin::MinikinRect const&)
 
 
 sampling/libsensorservice.afdo
@@ -283,19 +264,19 @@
 sampling/libsqlite.afdo
 ====
 sqlite3VdbeExec(Vdbe*) (.__uniq.309426955368013975012700285756637552939)
-vdbeRecordCompareString(int, void const*, UnpackedRecord*) (.__uniq.309426955368013975012700285756637552939)
 sqlite3BtreeIndexMoveto(BtCursor*, UnpackedRecord*, int*) (.__uniq.309426955368013975012700285756637552939)
 sqlite3BtreeTableMoveto(BtCursor*, long long, int, int*) (.__uniq.309426955368013975012700285756637552939)
-getPageNormal(Pager*, unsigned int, PgHdr**, int) (.__uniq.309426955368013975012700285756637552939)
+vdbeRecordCompareString(int, void const*, UnpackedRecord*) (.__uniq.309426955368013975012700285756637552939)
 btreeParseCellPtr(MemPage*, unsigned char*, CellInfo*) (.__uniq.309426955368013975012700285756637552939)
-btreeNext(BtCursor*) (.__uniq.309426955368013975012700285756637552939)
-vdbeRecordCompareInt(int, void const*, UnpackedRecord*) (.__uniq.309426955368013975012700285756637552939)
+getPageNormal(Pager*, unsigned int, PgHdr**, int) (.__uniq.309426955368013975012700285756637552939)
 getCellInfo(BtCursor*) (.__uniq.309426955368013975012700285756637552939)
-vdbeSorterCompare(SortSubtask*, int*, void const*, int, void const*, int) (.__uniq.309426955368013975012700285756637552939)
+vdbeRecordCompareInt(int, void const*, UnpackedRecord*) (.__uniq.309426955368013975012700285756637552939)
+btreeNext(BtCursor*) (.__uniq.309426955368013975012700285756637552939)
 pcache1FetchStage2(PCache1*, unsigned int, int) (.__uniq.309426955368013975012700285756637552939)
 pcache1Fetch(sqlite3_pcache*, unsigned int, int) (.__uniq.309426955368013975012700285756637552939)
 pcache1Unpin(sqlite3_pcache*, sqlite3_pcache_page*, int) (.__uniq.309426955368013975012700285756637552939)
 balance(BtCursor*) (.__uniq.309426955368013975012700285756637552939)
+vdbeSorterCompare(SortSubtask*, int*, void const*, int, void const*, int) (.__uniq.309426955368013975012700285756637552939)
 sqlite3RunParser(Parse*, char const*) (.__uniq.309426955368013975012700285756637552939)
 yy_reduce(yyParser*, unsigned int, int, Token, Parse*) (.__uniq.309426955368013975012700285756637552939)
 
@@ -328,16 +309,16 @@
 android::RefBase::incStrong(void const*) const
 android::Looper::pollOnce(int, int*, int*, void**)
 bool std::__1::__cxx_atomic_compare_exchange_weak[abi:v180000]<int>(std::__1::__cxx_atomic_base_impl<int>*, int*, int, std::__1::memory_order, std::__1::memory_order)
-android::VectorImpl::clear()
 utf8_to_utf16
+android::VectorImpl::clear()
 strzcmp16
-android::elapsedRealtime()
 utf8_to_utf16_length
+android::elapsedRealtime()
 android::uptimeMillis()
-utf16_to_utf8
 android::SortedVectorImpl::indexOf(void const*) const
+utf16_to_utf8
 android::RefBase::weakref_type::decWeak(void const*)
-android::SharedBuffer::release(unsigned int) const
+android::SharedBuffer::editResize(unsigned long) const
 
 
 sampling/linker_arm64.afdo
@@ -345,19 +326,19 @@
 elf64_sym const* soinfo_do_lookup_impl<false>(char const*, version_info const*, soinfo**, SymbolLookupList const&) (.__uniq.331521225453620004837736674378903349473)
 calculate_gnu_hash_neon(char const*)
 BionicAllocator::alloc_impl(unsigned long, unsigned long)
+sleb128_decoder::pop_front()
 bool plain_relocate_impl<(RelocMode)1>(Relocator&, elf64_rela*, unsigned long) (.__uniq.153370809355997480299804515629147722701)
-find_libraries(android_namespace_t*, soinfo*, char const* const*, unsigned long, soinfo**, std::__1::vector<soinfo*, std::__1::allocator<soinfo*>>*, unsigned long, int, android_dlextinfo const*, bool, std::__1::vector<android_namespace_t*, std::__1::allocator<android_namespace_t*>>*)
 BionicSmallObjectAllocator::alloc()
 BionicAllocator::free(void*)
-sleb128_decoder::pop_front()
-BionicSmallObjectAllocator::free(void*)
-bool plain_relocate_impl<(RelocMode)0>(Relocator&, elf64_rela*, unsigned long) (.__uniq.153370809355997480299804515629147722701)
+bool packed_relocate_impl<(RelocMode)1>(Relocator&, sleb128_decoder) (.__uniq.153370809355997480299804515629147722701)
 soinfo::lookup_version_info(VersionTracker const&, unsigned int, char const*, version_info const**)
-OpenArchiveInternal(ZipArchive*, char const*)
+bool plain_relocate_impl<(RelocMode)0>(Relocator&, elf64_rela*, unsigned long) (.__uniq.153370809355997480299804515629147722701)
+BionicSmallObjectAllocator::free(void*)
 dlsym_handle_lookup_impl(android_namespace_t*, soinfo*, soinfo*, soinfo**, SymbolName&, version_info const*) (.__uniq.250007671217850615957365636956552013758)
-android_namespace_t::is_accessible(soinfo*)
-android::base::Split(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)
+find_libraries(android_namespace_t*, soinfo*, char const* const*, unsigned long, soinfo**, std::__1::vector<soinfo*, std::__1::allocator<soinfo*>>*, unsigned long, int, android_dlextinfo const*, bool, std::__1::vector<android_namespace_t*, std::__1::allocator<android_namespace_t*>>*)
 find_verdef_version_index(soinfo const*, version_info const*)
+android::base::Split(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)
+relocate_relr(unsigned long long const*, unsigned long long const*, unsigned long long)
 
 
 sampling/lmkd.afdo
@@ -387,14 +368,14 @@
 android::impl::EventThread::threadMain(std::__1::unique_lock<std::__1::mutex>&)
 android::scheduler::LayerHistory::summarize(android::scheduler::RefreshRateSelector const&, long)
 android::scheduler::VSyncPredictor::nextAnticipatedVSyncTimeFrom(long, std::__1::optional<long>)
-android::frametimeline::impl::TokenManager::generateTokenForPredictions(android::frametimeline::TimelineItem&&)
 android::compositionengine::impl::planner::Planner::plan(android::compositionengine::Output::OutputLayersEnumerator<android::compositionengine::Output>&&)
+android::frametimeline::impl::TokenManager::generateTokenForPredictions(android::frametimeline::TimelineItem&&)
 android::FlagManager::enable_small_area_detection() const
 std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerHierarchy*>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerHierarchy*>, std::__1::__unordered_map_hasher<unsigned int, std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerHierarchy*>, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, true>, std::__1::__unordered_map_equal<unsigned int, std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerHierarchy*>, std::__1::equal_to<unsigned int>, std::__1::hash<unsigned int>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerHierarchy*>>>::find<unsigned int>(unsigned int const&)
+std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, std::__1::__unordered_map_hasher<unsigned int, std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, true>, std::__1::__unordered_map_equal<unsigned int, std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, std::__1::equal_to<unsigned int>, std::__1::hash<unsigned int>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>>>::find<unsigned int>(unsigned int const&)
 std::__1::__hash_const_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>, std::__1::__unordered_map_hasher<unsigned int, std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, true>, std::__1::__unordered_map_equal<unsigned int, std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>, std::__1::equal_to<unsigned int>, std::__1::hash<unsigned int>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>>>::find<unsigned int>(unsigned int const&) const
 std::__1::__hash_const_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerHierarchy*>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerHierarchy*>, std::__1::__unordered_map_hasher<unsigned int, std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerHierarchy*>, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, true>, std::__1::__unordered_map_equal<unsigned int, std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerHierarchy*>, std::__1::equal_to<unsigned int>, std::__1::hash<unsigned int>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerHierarchy*>>>::find<unsigned int>(unsigned int const&) const
 std::__1::__hash_const_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned int, long>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<unsigned int, long>, std::__1::__unordered_map_hasher<unsigned int, std::__1::__hash_value_type<unsigned int, long>, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, true>, std::__1::__unordered_map_equal<unsigned int, std::__1::__hash_value_type<unsigned int, long>, std::__1::equal_to<unsigned int>, std::__1::hash<unsigned int>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned int, long>>>::find<unsigned int>(unsigned int const&) const
-std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, std::__1::__unordered_map_hasher<unsigned int, std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, true>, std::__1::__unordered_map_equal<unsigned int, std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, std::__1::equal_to<unsigned int>, std::__1::hash<unsigned int>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>>>::find<unsigned int>(unsigned int const&)
 std::__1::__hash_iterator<std::__1::__hash_node<unsigned int, void*>*> std::__1::__hash_table<unsigned int, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, std::__1::allocator<unsigned int>>::find<unsigned int>(unsigned int const&)
 std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>, std::__1::__unordered_map_hasher<unsigned int, std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, true>, std::__1::__unordered_map_equal<unsigned int, std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>, std::__1::equal_to<unsigned int>, std::__1::hash<unsigned int>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>>>::find<unsigned int>(unsigned int const&)
 std::__1::__hash_const_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, std::__1::__unordered_map_hasher<unsigned int, std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, true>, std::__1::__unordered_map_equal<unsigned int, std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, std::__1::equal_to<unsigned int>, std::__1::hash<unsigned int>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>>>::find<unsigned int>(unsigned int const&) const
diff --git a/sampling/keystore2.afdo b/sampling/keystore2.afdo
index 548a3fe..ac50f13 100644
--- a/sampling/keystore2.afdo
+++ b/sampling/keystore2.afdo
Binary files differ
diff --git a/sampling/libart_arm64.afdo b/sampling/libart_arm64.afdo
index f29c874..8701c18 100644
--- a/sampling/libart_arm64.afdo
+++ b/sampling/libart_arm64.afdo
Binary files differ
diff --git a/sampling/libartbase_arm64.afdo b/sampling/libartbase_arm64.afdo
index 69dd135..20cf48e 100644
--- a/sampling/libartbase_arm64.afdo
+++ b/sampling/libartbase_arm64.afdo
Binary files differ
diff --git a/sampling/libbinder.afdo b/sampling/libbinder.afdo
index f4834f6..2e06746 100644
--- a/sampling/libbinder.afdo
+++ b/sampling/libbinder.afdo
Binary files differ
diff --git a/sampling/libbinder_ndk.afdo b/sampling/libbinder_ndk.afdo
index 0a3aa7d..e9c132b 100644
--- a/sampling/libbinder_ndk.afdo
+++ b/sampling/libbinder_ndk.afdo
Binary files differ
diff --git a/sampling/libcrypto.afdo b/sampling/libcrypto.afdo
index 6139fee..49cdaa7 100644
--- a/sampling/libcrypto.afdo
+++ b/sampling/libcrypto.afdo
Binary files differ
diff --git a/sampling/libgui.afdo b/sampling/libgui.afdo
index 3e4af48..5fc48fe 100644
--- a/sampling/libgui.afdo
+++ b/sampling/libgui.afdo
Binary files differ
diff --git a/sampling/libharfbuzz_ng.afdo b/sampling/libharfbuzz_ng.afdo
index 7c86ce7..f425a64 100644
--- a/sampling/libharfbuzz_ng.afdo
+++ b/sampling/libharfbuzz_ng.afdo
Binary files differ
diff --git a/sampling/libhidlbase.afdo b/sampling/libhidlbase.afdo
index 4cb43fb..e69c01a 100644
--- a/sampling/libhidlbase.afdo
+++ b/sampling/libhidlbase.afdo
Binary files differ
diff --git a/sampling/libhwui_arm64.afdo b/sampling/libhwui_arm64.afdo
index 9b42f10..dcf22fd 100644
--- a/sampling/libhwui_arm64.afdo
+++ b/sampling/libhwui_arm64.afdo
Binary files differ
diff --git a/sampling/liblog.afdo b/sampling/liblog.afdo
index e2b46f7..3f57b8b 100644
--- a/sampling/liblog.afdo
+++ b/sampling/liblog.afdo
Binary files differ
diff --git a/sampling/libminikin.afdo b/sampling/libminikin.afdo
index 8c0a33e..193ef24 100644
--- a/sampling/libminikin.afdo
+++ b/sampling/libminikin.afdo
Binary files differ
diff --git a/sampling/libsensorservice.afdo b/sampling/libsensorservice.afdo
index 9654d8d..f30f16f 100644
--- a/sampling/libsensorservice.afdo
+++ b/sampling/libsensorservice.afdo
Binary files differ
diff --git a/sampling/libsqlite.afdo b/sampling/libsqlite.afdo
index d63c985..f779ca5 100644
--- a/sampling/libsqlite.afdo
+++ b/sampling/libsqlite.afdo
Binary files differ
diff --git a/sampling/libui.afdo b/sampling/libui.afdo
index 980df9e..1561d78 100644
--- a/sampling/libui.afdo
+++ b/sampling/libui.afdo
Binary files differ
diff --git a/sampling/libutils.afdo b/sampling/libutils.afdo
index 1cb5ea2..97419e6 100644
--- a/sampling/libutils.afdo
+++ b/sampling/libutils.afdo
Binary files differ
diff --git a/sampling/linker_arm64.afdo b/sampling/linker_arm64.afdo
index fff32dc..b88a640 100644
--- a/sampling/linker_arm64.afdo
+++ b/sampling/linker_arm64.afdo
Binary files differ
diff --git a/sampling/lmkd.afdo b/sampling/lmkd.afdo
index ba26d5f..3c33f8d 100644
--- a/sampling/lmkd.afdo
+++ b/sampling/lmkd.afdo
Binary files differ
diff --git a/sampling/server_configurable_flags.afdo b/sampling/server_configurable_flags.afdo
index c1c4a85..3eb7368 100644
--- a/sampling/server_configurable_flags.afdo
+++ b/sampling/server_configurable_flags.afdo
Binary files differ
diff --git a/sampling/surfaceflinger.afdo b/sampling/surfaceflinger.afdo
index f828e6d..4d6e060 100644
--- a/sampling/surfaceflinger.afdo
+++ b/sampling/surfaceflinger.afdo
Binary files differ
