3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-16 05:48:44 +00:00
Commit graph

15658 commits

Author SHA1 Message Date
Lev Nachmanson e28b644a67 remove an empty line 2023-12-20 06:53:59 -10:00
Lev Nachmanson d6365610d5 change some TRACE statements 2023-12-20 06:49:55 -10:00
Jakob Rath 97d450868e
Vector updates from polysat branch (#7066)
* vector: add erase_if

* vector: generalize operator<<

* vector: fix missing destructor call
2023-12-19 08:58:55 -08:00
Jakob Rath 4c9f705cd1
tptr: add pointer tagging templates (#7067) 2023-12-19 08:58:32 -08:00
Nuno Lopes fcc7b25c19 remove a few string copies 2023-12-19 14:34:37 +00:00
Lev Nachmanson 9a18628b17 remove unnecessary assignments 2023-12-18 18:49:27 -10:00
Nikolaj Bjorner ea44c110bb gc expressions in the scope of updates, not old expressions 2023-12-18 20:08:29 -08:00
Nikolaj Bjorner 13be3c3fbb reset model converter between rounds to elim-unconstrained. 2023-12-18 16:57:52 -08:00
Nikolaj Bjorner 0daa05aab2 add ability to log selected bv rewrites 2023-12-18 16:57:52 -08:00
Nikolaj Bjorner dff419a7cb pin expressions to fix unsound behavior 2023-12-18 16:57:52 -08:00
Nikolaj Bjorner 5d4c18dde2 fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-18 16:57:00 -08:00
Nikolaj Bjorner 6d23847482 fix typos
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-18 09:33:40 -08:00
Nikolaj Bjorner d008dbe50a port Jakob's update to bv_internalize
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-18 09:31:59 -08:00
Nikolaj Bjorner 085b5e2588 port Jakob's update to union_find from polysat branch
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-18 09:25:24 -08:00
Nikolaj Bjorner 2f2bf749b9 fixes to intblast encoding and more arithmetic rewriters
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-17 18:15:51 -08:00
Nikolaj Bjorner bb99f44214 fix bugs in elim-unconstr2 and fix bugs in intblast_solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-17 17:42:55 -08:00
Nikolaj Bjorner 4867073290 remove windowsArm64 from nightly
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-17 10:04:49 -08:00
Nikolaj Bjorner d0a59f3740 intblast with lazy expansion of shl, ashr, lshr
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-16 15:12:57 -08:00
Bruce Mitchener 50e0fd3ba6
Use noexcept more. (#7058) 2023-12-16 12:14:53 +00:00
Nikolaj Bjorner b44ab2f620 add rewriters for and
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-15 14:55:02 -08:00
Nikolaj Bjorner 4778f27b46 revert to standard solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-15 14:33:23 -08:00
Nikolaj Bjorner 9293923b8a Add intblast solver 2023-12-15 13:50:38 -08:00
Nikolaj Bjorner 0520558fc0 port updated pdd from polysat
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-15 08:54:03 -08:00
Christoph M. Wintersteiger 2e83352d42
Fix bug in fp.round_to_integral (#7060) 2023-12-15 08:34:27 -08:00
Bruce Mitchener e90a844508
Use override more. (#7059) 2023-12-15 08:44:57 +00:00
Lev Nachmanson f6e69d43a3 Merge branch 'master' of https://github.com/z3prover/z3 2023-12-14 08:21:21 -10:00
Nikolaj Bjorner b40e3015ef fix #7053 2023-12-13 19:25:18 -08:00
Bruce Mitchener 3ebec56880
tptr.h: Include <cstdint> once rather than twice. (#7051) 2023-12-13 09:36:41 -08:00
Lev Nachmanson 536f4f84bb Merge branch 'master' of https://github.com/z3prover/z3 2023-12-12 15:23:43 -10:00
Nikolaj Bjorner 70d4f32ffd port updates from poly/polysat
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-09 13:00:43 -08:00
Nikolaj Bjorner e580c384b8 import updates to rational from polysat
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-09 12:46:06 -08:00
Nikolaj Bjorner 575538d325 follow error message to put dependencies in setup args
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-08 18:38:29 -08:00
Nikolaj Bjorner 4123405d17 add version
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-08 15:50:09 -08:00
Nikolaj Bjorner 6282f40255 try add name to project
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-08 14:57:45 -08:00
Nikolaj Bjorner 7e716f7cfe try fix suggested in #7041
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-08 13:12:05 -08:00
Nikolaj Bjorner 8e26c2af17 fix #7049
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-08 13:05:21 -08:00
Nikolaj Bjorner 6cd619d377 kludge to fixup osver in python for Mac
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-08 11:39:55 -08:00
Nikolaj Bjorner 4d1d067d42 fix divergence reported by Guido Martinez 2023-12-07 13:34:35 -08:00
Nikolaj Bjorner 1d6616afac make var-queue a template
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-05 15:41:35 -08:00
Nikolaj Bjorner 111ce01702 update path reference to readme 2023-12-05 13:47:05 -08:00
Nikolaj Bjorner d566eb3df7 include readme in package
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-05 13:04:25 -08:00
Nikolaj Bjorner 76c05f171a specify a readme file with the nuget package
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-05 12:32:30 -08:00
Asger Hautop Drewsen a9513c1998
Improve BoolRef addition (#7045) 2023-12-05 09:12:25 -08:00
Asger Hautop Drewsen 764f0d54a4
Overload xor operator for BoolRef (#7043) 2023-12-05 07:48:57 -08:00
Nikolaj Bjorner 4a9b38e531 clean up nla_grobner 2023-12-04 17:08:17 -08:00
Nikolaj Bjorner 84a7a79e90 fix #7037 2023-12-04 17:08:01 -08:00
Lev Nachmanson fc23a498c4 a simple version of choosing a column for gomory cut 2023-12-04 15:06:50 -10:00
Nikolaj Bjorner f98b42ae42 install importlib-resources for ubuntu doc
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-04 10:33:29 -08:00
Nikolaj Bjorner de75692cb0 install importlib-resources for ubuntu doc
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-04 10:32:02 -08:00
Nikolaj Bjorner f7415bb677 install importlib-resources for ubuntu doc
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-04 10:32:02 -08:00
Nikolaj Bjorner 17913f3ec8 remove braces 2023-12-04 10:32:02 -08:00
Andrey Andreyevich Bienkowski 18f14921ba
Clarify optimizer guarantees (#7030)
* Clarify optimizer guarantees (python)

* Clarify optimization guarantees (OCaml)

* Clarify optimizer guarantees (java)

* Clarify optimizer guarantees (.net)
2023-12-04 09:32:26 -08:00
Christoph M. Wintersteiger 6910a4e18c
Fix to_fp_signed (#7034) 2023-12-03 16:38:06 -08:00
Nikolaj Bjorner ea3628e50b remove hoist functionality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-03 16:28:43 -08:00
Nikolaj Bjorner bd8bed1759 handle ac-op in legacy special relations procedure by adding warning
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-03 12:55:37 -08:00
Nikolaj Bjorner 1b1ebaa3b0 minor simplification during internalization 2023-12-03 12:43:39 -08:00
Nikolaj Bjorner 36725383d3 minor simplification of terms during internalization. 2023-12-03 12:43:14 -08:00
Nikolaj Bjorner f06e07ad0a fix cone of influence computation for terms with nested variables
exposed by #7027, but generally missing. It is less likely to be exposed if input is normalized by distributing multiplication over addition.
2023-12-03 12:42:42 -08:00
Nikolaj Bjorner 25dd29907b refine no-effect predicate to include value of ret 2023-12-03 12:41:21 -08:00
Nikolaj Bjorner 9cc2ce42f7 #7027
fix lossy function declaration inclusion functionality exposed when fixing a bug for incomplete model generation.
2023-12-03 11:14:18 -08:00
Nikolaj Bjorner a8f3396b24 #7033 2023-12-03 10:34:16 -08:00
Nikolaj Bjorner 965bee5801 fix build 2023-12-02 19:52:59 -08:00
Nikolaj Bjorner 1de25ed09c pending files 2023-12-02 19:43:51 -08:00
Nikolaj Bjorner b22daa9816 missing header 2023-12-02 19:39:43 -08:00
Nikolaj Bjorner 362d299a5c #7027 2023-12-02 19:34:36 -08:00
Nikolaj Bjorner ba8d8f0af7 Disable hoist entirely, it is bad on QF_LIA and does not help on other observed cases 2023-12-02 15:40:47 -08:00
Nikolaj Bjorner 585d027668 remove assert #7032
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-02 14:12:41 -08:00
Nikolaj Bjorner 331507c4cd #7027
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-02 12:05:06 -08:00
Nikolaj Bjorner 7eab26e3ef try with missed bounds 2023-12-02 10:48:40 -08:00
Nikolaj Bjorner 5c1e7f7112 fix #7029 2023-12-02 10:48:40 -08:00
Nikolaj Bjorner a15a7cee7b touch
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-01 14:13:05 -08:00
Nikolaj Bjorner faf14012ba Regressions reported by Guido 2023-12-01 13:32:13 -08:00
Nikolaj Bjorner 99e2794a6d update output
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-30 17:20:43 -08:00
Nikolaj Bjorner 8a0dec1a4b fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-30 14:08:29 -08:00
Nikolaj Bjorner b52fd8d954 add EUF plugin framework.
plugin setting allows adding equality saturation within the E-graph propagation without involving externalizing theory solver dispatch. It makes equality saturation independent of SAT integration.
Add a special relation operator to support ad-hoc AC symbols.
2023-11-30 13:58:30 -08:00
Lev Nachmanson 5784c2da79 remove an unnecessary if 2023-11-30 08:59:05 -10:00
Alper Altuntas d540d881ef
Add __enter__ and __exit__ methods to Solver class (#7025)
To enable the usage of the with statement for the Solver class
instances, this commit adds __enter__ and __exit__ methods.
The with statement should offer a more concise and safer
alternative to explicit usage of push() and pop() methods.
2023-11-30 08:35:08 -08:00
Nikolaj Bjorner 26440ed3d8 deal with ubuntu/clang warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-29 15:45:19 -08:00
Nikolaj Bjorner e9abdbb7a4 fix #7011
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-29 15:08:08 -08:00
Nikolaj Bjorner 9efe6f6afa fix regression in fix for #7006
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-29 14:54:54 -08:00
Nikolaj Bjorner faa2d8ac6c re-enable delayed literal propagation 2023-11-29 14:00:37 -08:00
Nikolaj Bjorner 2f01b5b567 re-enable delayed literal propagation 2023-11-29 14:00:17 -08:00
Nikolaj Bjorner 4289cfac8d revert some fixes to euf
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-29 13:47:59 -08:00
Nikolaj Bjorner 41a3196c89 fix #7024 2023-11-29 13:35:30 -08:00
Nikolaj Bjorner d469c1054e remove separate to_add_literal queue 2023-11-29 12:45:43 -08:00
Nikolaj Bjorner e972eb33b2 #6523 - contains_ptr bug regarding etable reinserts 2023-11-29 10:44:36 -08:00
Nikolaj Bjorner 79bbbf76d0 fix #7006 2023-11-28 15:06:27 -08:00
Nikolaj Bjorner 8179f8b5d7 fix #7017 2023-11-28 14:32:56 -08:00
Nikolaj Bjorner f36f21fa8c add comments for API versions of bit-vector overflow/underflow checks for #7011 2023-11-28 13:36:41 -08:00
Nikolaj Bjorner f90b10a0c8 fix #7012
omitting constructor, simplifying operator definitions, omitting incorrect type annotations
2023-11-28 13:26:10 -08:00
Nikolaj Bjorner 69f9640fdf fix #7018 2023-11-28 13:14:44 -08:00
Bruce Mitchener 9d1ceab1f2
cmake: Use FindPython3. (#7019)
`FindPythonInterp` has been deprecated for a long time and is more
verbal about that deprecation now.

The build system no longer uses `PYTHON_EXECUTABLE` but instead uses
`Python3_EXECUTABLE`.
2023-11-27 11:20:21 +01:00
Bruce Mitchener b5e8f59eae
mbp: term: Fix reorder ctor warning. (#7016)
Initialize members in same order they are defined.
2023-11-26 16:34:08 +01:00
Bruce Mitchener 2354998cd2
z3.h: Don't include stdio.h (#7014)
This doesn't seem to actually be used or needed here.
2023-11-24 16:46:32 +01:00
Christoph M. Wintersteiger 16753e43f1
Add accessors for RCF numeral internals (#7013) 2023-11-23 17:54:23 +01:00
Nikolaj Bjorner 9382b96a32 add API to access symbols associated with quantifiers 2023-11-19 16:30:09 -08:00
Nikolaj Bjorner d272acc3ac fix crash when api_solver sets reset_tracked_assertions 2023-11-19 12:48:33 -08:00
Nikolaj Bjorner ac105b7d8c remove unused code
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-19 11:47:00 -08:00
Nikolaj Bjorner 4350bd77ac check cancel flag to avoid unsound conflicts 2023-11-19 11:43:52 -08:00
Nikolaj Bjorner 32f8705ac3 #7001 - align is_numeral without to behavior if is_numeral with return numeral. 2023-11-19 10:43:14 -08:00
Nikolaj Bjorner 35bc522dae #7003
minor tweaks to gomory and reset n3 within loop (but the entire function is dead code).
2023-11-19 09:59:44 -08:00
Nikolaj Bjorner 924c296704 add logging 2023-11-18 12:30:40 -08:00
Nikolaj Bjorner 5bec982cc5 chores in theory_lra 2023-11-18 10:05:26 -08:00
Nikolaj Bjorner e40b8a2d13 household chores in legacy arithmetic solver 2023-11-18 09:56:06 -08:00
Nikolaj Bjorner 5ab1afe5c2 expose enode pp convenciences 2023-11-18 09:53:20 -08:00
Nikolaj Bjorner 1710fe4927 use iterator shortcut 2023-11-18 09:52:58 -08:00
Nikolaj Bjorner a9f9d3ddf4 build fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-17 10:15:01 -08:00
Nikolaj Bjorner b9455c3692 #6999 deal with implicit assumptions, more robust pattern matching
The code is making some assumptions that arrays are 1-dimensional. This is not generally true.
Introducing pattern matching to ensure the assumption is met.
Avoid get_arg(..) especially when there is an approach based on pattern matching recognizers.
2023-11-17 10:06:20 -08:00
Nikolaj Bjorner 6d6d6b8ed0 build issue
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-17 09:20:17 -08:00
Hari Govind V K f94a475da3
Qel fixes (#6999)
* dont use qel for sequences. fix #6950

* handle negation of read-write. fix #6991

* handle neg-peq terms produced by distinct. fix #6889

* dbg print
2023-11-17 09:18:04 -08:00
Nikolaj Bjorner 1b6c7d6541 fix #6996 2023-11-16 18:58:24 -08:00
Christoph M. Wintersteiger 36382ccb57
Fix memory and concurrency issues in OCaml API (#6992)
* Fix memory and concurrency issues in OCaml API

* Undo locking changes
2023-11-16 18:28:12 -08:00
Nikolaj Bjorner 5b9fdcf462 fix #6997
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-15 18:08:48 -08:00
Nikolaj Bjorner f1a39b8884 add comment regarding usage model for flush_objects() to relate with pr #6992
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-15 11:54:59 -08:00
Christoph M. Wintersteiger 3baaba5edd
Revert unsound NaN constraints in theory_fpa (#6993) 2023-11-14 14:28:30 -08:00
Nikolaj Bjorner 37b283fab9 use python3 in nightly
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-14 08:54:10 -08:00
Nikolaj Bjorner ad2107f079 fix #6978 2023-11-14 08:45:22 -08:00
Nikolaj Bjorner 4406011881 fix #6984 2023-11-14 07:40:32 -08:00
Nikolaj Bjorner 3c2e97ddb6 fix #6988 2023-11-14 07:30:32 -08:00
Nikolaj Bjorner c2610cb37c #6523
malformed models on giveup status
2023-11-13 14:32:53 -08:00
Nikolaj Bjorner 8a4e857294 #6523
regressions from changes inside math/lp/int_solver
2023-11-13 14:28:03 -08:00
Nikolaj Bjorner 3de5af3cb0 fix bug in bound simplification in Gomory for mixed integer linear cuts, enable fixed variable redution after bugfix, add notes that rewriting bounds does not work
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-10 16:39:04 +01:00
EyalBrilling aa9c7912dc
fixed possible undefined variable assigment (#6985) 2023-11-10 11:36:24 +01:00
Nikolaj Bjorner 0556059bdf change to expr_ref to allow trying simplification 2023-11-08 13:50:48 +01:00
Nikolaj Bjorner bd4d580b17 fix #6986 2023-11-08 13:49:30 +01:00
Nikolaj Bjorner e6385f8c85 disable bound validation in debug mode
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-07 20:49:26 +01:00
Nikolaj Bjorner 3d99ed9dd4 Gomory cut / branch and bound improvements
Improve fairness of cut generation by switching to find_infeasible_int_var with cascading priorities, allow stronger cuts by inlining terms.
2023-11-07 19:59:02 +01:00
Nikolaj Bjorner 9f0b3cdc25 Add utility to expand sub-terms 2023-11-07 19:58:32 +01:00
Nikolaj Bjorner fb95760137 remove template 2023-11-07 19:57:50 +01:00
Nikolaj Bjorner 77dab53e9e track number of Gomory cuts 2023-11-07 19:57:49 +01:00
Nikolaj Bjorner 2d1f4d5d93 remove verbose logging 2023-11-07 19:57:49 +01:00
Nikolaj Bjorner e86eae27e6 #6523 and other heap-use-after-free error 2023-11-07 19:57:49 +01:00
Nikolaj Bjorner eed02b6d86 improved logging, use C++11 for loops instead of iterators 2023-11-07 19:57:49 +01:00
Lev Nachmanson 14312ef8a3 remove some warnings with clang
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-11-02 15:34:41 -07:00
Lev Nachmanson 08d3a82ce0 simplify the jump on entering 2023-11-02 11:09:01 -07:00
Lev Nachmanson bdf1fcf5c1 remove an assert 2023-11-02 09:59:03 -07:00
Lev Nachmanson ca6cb0af95 add changes in lp with validate_bound and maximize_term
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-11-02 09:59:03 -07:00
Nikolaj Bjorner 49a071988c remove temporary algebraic numbers from upper layers, move to owner module 2023-11-01 03:52:20 -07:00
Nikolaj Bjorner ea915e5b37 #6971
clear m_a1, m_a2 before calls that may affect model.
2023-11-01 03:36:01 -07:00
Christoph M. Wintersteiger 3af2b36cd7
Add Z3_solver_interrupt to OCaml API (#6976) 2023-10-31 08:48:06 -07:00
Nikolaj Bjorner 91c2139b5d just use std::string
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-30 17:56:44 -07:00
Nikolaj Bjorner fe6f38a160 #6951, fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-30 15:31:56 -07:00
Nikolaj Bjorner c82b7dd241 Merge branch 'master' of https://github.com/z3prover/z3 2023-10-30 14:54:11 -07:00
Nikolaj Bjorner f97dd34028 tests
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-30 14:54:04 -07:00
Clemens Eisenhofer 996b844cde
Fixed parsing of | and \ (#6975)
* Give users ability to see if propagation failed

* Skip propagations in the new core if they are already satisfied

* Fix registration in final

* Don't make it too complicated...

* Fixed next_split when called in pop
Made delay_units available even without quantifiers

* Missing push calls before "decide"-callback

* Fixed parsing of | and \

* Unit-test for parsing bug
2023-10-30 12:30:23 -07:00
Nikolaj Bjorner 938a89e197 prepare for local version of Gomory cuts
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-29 19:45:14 -07:00
Nikolaj Bjorner 160971df60 fix #6969, again
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-29 19:10:46 -07:00
Nikolaj Bjorner a957a5673d remove experiment with theory lemmas
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-29 18:48:48 -07:00
Nikolaj Bjorner 3726960969 fix #6969
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-29 17:44:00 -07:00
Nikolaj Bjorner 589024aa1c fix #6969
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-29 17:44:00 -07:00