HEAD dba492ac1dafd1d261d8818b0791b7d76eacf618  2026-09-26 11:30:26 -0700
=== python -B scratch/tools/provider_link.py source/ai/ai_debug   (all surplus external definitions vs January's split object; both orders; tool sha256 bc854a32244cd42830696d0d4b35f8e46278ac4791a8e24f52b2bb6ae6fb188d)
??_C@_00CNPNBAHC@?$AA@                       provider source/ai/action_obey                            PASS
??_C@_03MKHEFFMA@aim?$AA@                    provider source/ai/actor_looking                          PASS
??_C@_04CGFJFPFD@none?$AA@                   provider source/ai/actions                                PASS
??_C@_04IBLILJC@crew?$AA@                    provider source/ai/actor_type_crew                        PASS
??_C@_04IMJFEJN@flee?$AA@                    provider source/ai/actions                                PASS
??_C@_04OKGDLNCL@NONE?$AA@                   provider source/ai/action_obey                            PASS
??_C@_04PLMLMMEO@full?$AA@                   provider source/ai/actor_perception                       PASS
??_C@_05DDGCEFJL@panic?$AA@                  provider source/ai/action_obey                            PASS
??_C@_05EHJKLNBO@elite?$AA@                  provider source/ai/actor_type_elite                       PASS
??_C@_05IMODGEHH@melee?$AA@                  provider source/ai/ai_communication                       PASS
??_C@_05INCFNIGH@grunt?$AA@                  provider source/ai/actor_type_grunt                       PASS
??_C@_05MBIJBPBC@alert?$AA@                  provider source/ai/actions                                PASS
??_C@_05OAIPHEDE@human?$AA@                  provider source/ai/ai_communication                       PASS
??_C@_05ONANONLM@flood?$AA@                  provider source/ai/actor_type_flood                       PASS
??_C@_06BAGPFCCJ@hunter?$AA@                 provider source/ai/actor_type_hunter                      PASS
??_C@_06BALNJMNP@player?$AA@                 provider source/ai/actor_types                            PASS
??_C@_06BBLOAEEI@center?$AA@                 provider source/ai/action_vehicle                         PASS
??_C@_06DJHOIPC@?$CFs?3?5?$CFs?$AA@          provider source/ai/ai_communication                       PASS
??_C@_06DMBFBHPG@jackal?$AA@                 provider source/ai/actor_type_jackal                      PASS
??_C@_06GJOIPFFF@damage?$AA@                 provider source/ai/actor_looking                          PASS
??_C@_06JJLAMBGK@target?$AA@                 provider source/ai/action_uncover                         PASS
??_C@_06KGHINEPG@radius?$AA@                 provider source/ai/action_vehicle                         PASS
??_C@_06LDFNIMBB@impact?$AA@                 provider source/ai/actor_looking                          PASS
??_C@_06MBMIPGD@charge?$AA@                  provider source/ai/actions                                PASS
??_C@_06NBFPPGEG@vector?$AA@                 provider source/ai/actor_combat                           PASS
??_C@_06NCEIAKB@danger?$AA@                  provider source/ai/actor_looking                          PASS
??_C@_06NDKEFKOH@combat?$AA@                 provider source/ai/action_obey                            PASS
??_C@_06NEKFKDLF@marine?$AA@                 provider source/ai/actor_type_marine                      PASS
??_C@_06PDPNPFPP@asleep?$AA@                 provider source/ai/action_obey                            PASS
??_C@_07CBDMFKJF@?$DMerror?$DO?$AA@          provider source/ai/action_obey                            PASS
??_C@_07DLHCIBDH@default?$AA@                provider source/ai/actor_looking                          PASS
??_C@_07IPNMCAN@success?$AA@                 provider source/ai/actions                                PASS
??_C@_07JBPBHDIL@grenade?$AA@                provider source/ai/actor_stimulus                         PASS
??_C@_07LAMOHCEE@monitor?$AA@                provider source/ai/actor_types                            PASS
??_C@_07MAJPMGLJ@blocked?$AA@                provider source/ai/ai_communication                       PASS
??_C@_07PEIBNLKE@berserk?$AA@                provider source/ai/action_obey                            PASS
??_C@_08BFJJNNGH@assassin?$AA@               provider source/ai/actor_types                            PASS
??_C@_08MLGGHKJN@sentinel?$AA@               provider source/ai/actor_type_sentinel                    PASS
??_C@_08NCGGGNGI@engineer?$AA@               provider source/ai/actor_type_engineer                    PASS
??_C@_08ONAJMEN@covenant?$AA@                provider source/ai/ai_communication                       PASS
??_C@_09CENHCFNA@noncombat?$AA@              provider source/ai/action_obey                            PASS
??_C@_0BF@EIEPJPCC@?4?4?2objects?2objects?4h?$AA@ provider source/ai/action_vehicle                         PASS
??_C@_0BP@NJNCCKKA@c?3?2halo?2source?2ai?2encounters?4h?$AA@ provider source/ai/actions                                PASS
??_C@_0EH@CGNGLHPB@squad_absolute_index?$DO?$DN0?5?$CG?$CG?5squad@ provider source/ai/actions                                PASS
??_C@_0GB@EMHNKODG@squad_index?$DO?$DN0?5?$CG?$CG?5squad_index?$DMMA@ provider source/ai/actions                                PASS
??_C@_0N@CEGJDJND@?$DMunknown?5?$CFd?$DO?$AA@ provider source/ai/action_obey                            PASS
__real@00000000                              provider source/ai/action_charge                          PASS
__real@38d1b717                              provider source/ai/action_vehicle                         PASS
__real@3ca3d70a                              provider source/ai/actor_moving                           PASS
__real@3d4ccccd                              provider source/ai/action_charge                          PASS
__real@3dcccccd                              provider source/ai/actor_combat                           PASS
__real@3e19999a                              provider source/ai/actor_perception                       PASS
__real@3e4ccccd                              provider source/ai/actor_combat                           PASS
__real@3e800000                              provider source/ai/action_alert                           PASS
__real@3e99999a                              provider source/ai/action_charge                          PASS
__real@3f000000                              provider source/ai/action_alert                           PASS
__real@3f1a36e2e0000000                      provider source/ai/action_charge                          PASS
__real@3f666666                              provider source/ai/actor_looking                          PASS
__real@3f800000                              provider source/ai/action_charge                          PASS
__real@3f8ccccd                              provider source/ai/action_vehicle                         PASS
__real@3f99999a                              provider source/ai/action_vehicle                         PASS
__real@3fa66666                              provider source/ai/actor_moving                           PASS
__real@3fb33333                              provider source/ai/actor_type_flood                       PASS
__real@3fc00000                              provider source/ai/action_charge                          PASS
__real@3fe66666                              provider source/ai/actor_looking                          PASS
__real@41f00000                              provider source/ai/action_alert                           PASS
__real@43b40000                              provider source/ai/action_obey                            PASS
__real@447a0000                              provider source/ai/actor_firing_position                  PASS
__real@7f7fffff                              provider source/ai/actions                                PASS
_add_vectors3d                               provider source/ai/actor_combat                           PASS
_cosine                                      provider source/ai/actor_combat                           PASS
_cross_product3d                             provider source/ai/action_obey                            PASS
_distance_squared3d                          provider source/ai/action_alert                           PASS
_encounter_get_squad                         provider source/ai/actions                                PASS
_magnitude2d                                 provider source/ai/action_charge                          PASS
_magnitude3d                                 provider source/ai/action_charge                          PASS
_magnitude_squared2d                         provider source/ai/action_charge                          PASS
_magnitude_squared3d                         provider source/ai/action_alert                           PASS
_normalize2d                                 provider source/ai/action_charge                          PASS
_normalize3d                                 provider source/ai/action_charge                          PASS
_object_get_bounding_sphere                  provider source/ai/action_vehicle                         PASS
_point_from_line3d                           provider source/ai/action_charge                          PASS
_scale_vector2d                              provider source/ai/action_charge                          PASS
_scale_vector3d                              provider source/ai/action_charge                          PASS
_set_real_vector3d                           provider source/ai/actions                                PASS
_sine                                        provider source/ai/actor_combat                           PASS
_square_root                                 provider source/ai/action_charge                          PASS
_vector_from_points3d                        provider source/ai/action_alert                           PASS
SELECTED-PROVIDER LINK: PASS
exit code 0
