angr 9.2.156__cp310-cp310-manylinux2014_aarch64.whl → 9.2.157__cp310-cp310-manylinux2014_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of angr might be problematic. Click here for more details.

Files changed (34) hide show
  1. angr/__init__.py +1 -1
  2. angr/analyses/cfg/cfg_base.py +87 -71
  3. angr/analyses/cfg/cfg_fast.py +5 -0
  4. angr/analyses/decompiler/clinic.py +182 -104
  5. angr/analyses/decompiler/decompiler.py +11 -0
  6. angr/analyses/decompiler/dephication/graph_vvar_mapping.py +1 -1
  7. angr/analyses/decompiler/structured_codegen/c.py +18 -5
  8. angr/analyses/disassembly.py +5 -11
  9. angr/analyses/s_propagator.py +2 -4
  10. angr/analyses/stack_pointer_tracker.py +3 -7
  11. angr/analyses/typehoon/simple_solver.py +3 -3
  12. angr/analyses/variable_recovery/engine_base.py +2 -8
  13. angr/analyses/variable_recovery/variable_recovery.py +4 -3
  14. angr/calling_conventions.py +3 -3
  15. angr/engines/hook.py +1 -1
  16. angr/engines/icicle.py +229 -0
  17. angr/engines/pcode/behavior.py +1 -4
  18. angr/engines/pcode/emulate.py +1 -4
  19. angr/engines/pcode/lifter.py +2 -10
  20. angr/engines/vex/claripy/irop.py +2 -2
  21. angr/knowledge_plugins/functions/function.py +18 -10
  22. angr/knowledge_plugins/functions/function_manager.py +68 -5
  23. angr/knowledge_plugins/variables/variable_manager.py +15 -3
  24. angr/rustylib.cpython-310-aarch64-linux-gnu.so +0 -0
  25. angr/sim_variable.py +31 -0
  26. angr/storage/memory_mixins/address_concretization_mixin.py +2 -2
  27. angr/storage/memory_mixins/convenient_mappings_mixin.py +1 -1
  28. {angr-9.2.156.dist-info → angr-9.2.157.dist-info}/METADATA +7 -8
  29. {angr-9.2.156.dist-info → angr-9.2.157.dist-info}/RECORD +33 -33
  30. {angr-9.2.156.dist-info → angr-9.2.157.dist-info}/WHEEL +1 -1
  31. angr/rustylib.pyi +0 -165
  32. {angr-9.2.156.dist-info → angr-9.2.157.dist-info}/entry_points.txt +0 -0
  33. {angr-9.2.156.dist-info → angr-9.2.157.dist-info}/licenses/LICENSE +0 -0
  34. {angr-9.2.156.dist-info → angr-9.2.157.dist-info}/top_level.txt +0 -0
angr/sim_variable.py CHANGED
@@ -82,6 +82,10 @@ class SimVariable(Serializable):
82
82
  def bits(self) -> int:
83
83
  return self.size * 8
84
84
 
85
+ @property
86
+ def key(self) -> tuple[str | int | None, ...]:
87
+ raise NotImplementedError
88
+
85
89
  #
86
90
  # Operations
87
91
  #
@@ -135,6 +139,10 @@ class SimConstantVariable(SimVariable):
135
139
  r._hash = self._hash
136
140
  return r
137
141
 
142
+ @property
143
+ def key(self) -> tuple[str | int | None, ...]:
144
+ return ("const", self.value, self.size, self.ident)
145
+
138
146
 
139
147
  class SimTemporaryVariable(SimVariable):
140
148
  """
@@ -171,6 +179,10 @@ class SimTemporaryVariable(SimVariable):
171
179
  r._hash = self._hash
172
180
  return r
173
181
 
182
+ @property
183
+ def key(self) -> tuple[str | int | None, ...]:
184
+ return ("tmp", self.tmp_id, self.size, self.ident)
185
+
174
186
  @classmethod
175
187
  def _get_cmsg(cls):
176
188
  return pb2.TemporaryVariable() # type:ignore, pylint:disable=no-member
@@ -226,6 +238,10 @@ class SimRegisterVariable(SimVariable):
226
238
 
227
239
  return False
228
240
 
241
+ @property
242
+ def key(self) -> tuple[str | int | None, ...]:
243
+ return ("reg", self.reg, self.size, self.ident)
244
+
229
245
  def copy(self) -> SimRegisterVariable:
230
246
  s = SimRegisterVariable(
231
247
  self.reg, self.size, ident=self.ident, name=self.name, region=self.region, category=self.category
@@ -304,6 +320,10 @@ class SimMemoryVariable(SimVariable):
304
320
  r._hash = self._hash
305
321
  return r
306
322
 
323
+ @property
324
+ def key(self) -> tuple[str | int | None, ...]:
325
+ return ("mem", self.addr, self.size, self.ident)
326
+
307
327
  @classmethod
308
328
  def _get_cmsg(cls):
309
329
  return pb2.MemoryVariable() # type:ignore, pylint:disable=no-member
@@ -403,6 +423,17 @@ class SimStackVariable(SimMemoryVariable):
403
423
  s._hash = self._hash
404
424
  return s
405
425
 
426
+ @property
427
+ def key(self) -> tuple[str | int | None, ...]:
428
+ return (
429
+ "stack",
430
+ self.base,
431
+ self.base_addr if isinstance(self.base_addr, int) else None,
432
+ self.offset if isinstance(self.offset, int) else None,
433
+ self.size,
434
+ self.ident,
435
+ )
436
+
406
437
  @classmethod
407
438
  def _get_cmsg(cls):
408
439
  return pb2.StackVariable() # type:ignore, pylint:disable=no-member
@@ -270,13 +270,13 @@ class AddressConcretizationMixin(MemoryMixin):
270
270
  )
271
271
 
272
272
  if self.state.solver.symbolic(addr) and options.AVOID_MULTIVALUED_READS in self.state.options:
273
- return self._default_value(None, size, name="symbolic_read_unconstrained", **kwargs)
273
+ return self._default_value(addr, size, name="symbolic_read_unconstrained", **kwargs)
274
274
 
275
275
  try:
276
276
  concrete_addrs = self._interleave_ints(sorted(self.concretize_read_addr(addr, condition=condition)))
277
277
  except SimMemoryError:
278
278
  if options.CONSERVATIVE_READ_STRATEGY in self.state.options:
279
- return self._default_value(None, size, name="symbolic_read_unconstrained", **kwargs)
279
+ return self._default_value(addr, size, name="symbolic_read_unconstrained", **kwargs)
280
280
  raise
281
281
 
282
282
  # quick optimization so as to not involve the solver if not necessary
@@ -92,7 +92,7 @@ class ConvenientMappingsMixin(MemoryMixin):
92
92
 
93
93
  def _default_value(self, addr, size, **kwargs):
94
94
  d = super()._default_value(addr, size, **kwargs)
95
- if addr is not None:
95
+ if type(addr) is int:
96
96
  self._update_mappings(addr, None, d)
97
97
  return d
98
98
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: angr
3
- Version: 9.2.156
3
+ Version: 9.2.157
4
4
  Summary: A multi-architecture binary analysis toolkit, with the ability to perform dynamic symbolic execution and various static analyses on binaries
5
5
  License: BSD-2-Clause
6
6
  Project-URL: Homepage, https://angr.io/
@@ -17,13 +17,13 @@ Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
18
  Requires-Dist: cxxheaderparser
19
19
  Requires-Dist: GitPython
20
- Requires-Dist: ailment==9.2.156
21
- Requires-Dist: archinfo==9.2.156
20
+ Requires-Dist: ailment==9.2.157
21
+ Requires-Dist: archinfo==9.2.157
22
22
  Requires-Dist: cachetools
23
23
  Requires-Dist: capstone==5.0.3
24
24
  Requires-Dist: cffi>=1.14.0
25
- Requires-Dist: claripy==9.2.156
26
- Requires-Dist: cle==9.2.156
25
+ Requires-Dist: claripy==9.2.157
26
+ Requires-Dist: cle==9.2.157
27
27
  Requires-Dist: mulpyplexer
28
28
  Requires-Dist: networkx!=2.8.1,>=2.0
29
29
  Requires-Dist: protobuf>=5.28.2
@@ -31,7 +31,8 @@ Requires-Dist: psutil
31
31
  Requires-Dist: pycparser>=2.18
32
32
  Requires-Dist: pydemumble
33
33
  Requires-Dist: pyformlang
34
- Requires-Dist: pyvex==9.2.156
34
+ Requires-Dist: pypcode<4.0,>=3.2.1
35
+ Requires-Dist: pyvex==9.2.157
35
36
  Requires-Dist: rich>=13.1.0
36
37
  Requires-Dist: sortedcontainers
37
38
  Requires-Dist: sympy
@@ -39,8 +40,6 @@ Requires-Dist: unique-log-filter
39
40
  Requires-Dist: colorama; platform_system == "Windows"
40
41
  Provides-Extra: angrdb
41
42
  Requires-Dist: sqlalchemy; extra == "angrdb"
42
- Provides-Extra: pcode
43
- Requires-Dist: pypcode~=3.0; extra == "pcode"
44
43
  Provides-Extra: keystone
45
44
  Requires-Dist: keystone-engine; extra == "keystone"
46
45
  Provides-Extra: telemetry
@@ -1,10 +1,10 @@
1
- angr/__init__.py,sha256=lXm-MY1kWY8y5lVD_QNq2nSpq0b08zxPPFua8d4t7co,9153
1
+ angr/__init__.py,sha256=uen_dmruEiPNccoDwEiSu3eNDQDbZjyXIr7UFtAAQ0Y,9153
2
2
  angr/__main__.py,sha256=AK9V6uPZ58UuTKmmiH_Kgn5pG9AvjnmJCPOku69A-WU,4993
3
3
  angr/annocfg.py,sha256=0NIvcuCskwz45hbBzigUTAuCrYutjDMwEXtMJf0y0S0,10742
4
4
  angr/blade.py,sha256=NhesOPloKJC1DQJRv_HBT18X7oNxK16JwAfNz2Lc1o0,15384
5
5
  angr/block.py,sha256=0-qh5KiE1F8FZXgDpRG5Hk-OhZrTBrCmMi9oGXE21rU,14834
6
6
  angr/callable.py,sha256=j9Orwd4H4fPqOYylcEt5GuLGPV7ZOqyA_OYO2bp5PAA,6437
7
- angr/calling_conventions.py,sha256=jce9q-6DfMPV_bm4QCVR19c8hGrS7nArTwnKeC_stmc,101333
7
+ angr/calling_conventions.py,sha256=BWed6JA8QRDwqOdDLqeSzegjHtsd4jgiVhaTIVf_NMQ,101396
8
8
  angr/code_location.py,sha256=kXNJDEMge9VRHadrK4E6HQ8wDdCaHSXNqyAZuHDEGuM,5397
9
9
  angr/codenode.py,sha256=hCrQRp4Ebb2X6JicNmY1PXo3_Pm8GDxVivVW0Pwe84k,3918
10
10
  angr/errors.py,sha256=I0L-TbxmVYIkC-USuHwaQ9BGPi2YVObnhZXQQ3kJFuo,8385
@@ -14,8 +14,7 @@ angr/keyed_region.py,sha256=Cx6dadqFgEvRmEHTbCJpg9mXkBtKGc_BKckHc6bk1IU,17992
14
14
  angr/knowledge_base.py,sha256=hRoSLuLaOXmddTSF9FN5TVs7liftpBGq_IICz5AaYBk,4533
15
15
  angr/project.py,sha256=ANJUNPF41_Gs1vH8SC28FktgogurkNdeTH-uqLNPeoQ,37567
16
16
  angr/py.typed,sha256=la67KBlbjXN-_-DfGNcdOcjYumVpKG_Tkw-8n5dnGB4,8
17
- angr/rustylib.cpython-310-aarch64-linux-gnu.so,sha256=3_n4yiPuwTLd8VZWCbym_V0a75LVsmnFiYRKeuxgHvc,837808
18
- angr/rustylib.pyi,sha256=n2Ou81HatNEi9qrCPY9Lke5hIObWVsCpf1j3WG2BqKc,5228
17
+ angr/rustylib.cpython-310-aarch64-linux-gnu.so,sha256=XTjxlB2ziiLapVxZ9JUxRZAn-zOyw8L35kVr0E3FoGA,5618984
19
18
  angr/serializable.py,sha256=l908phj_KcqopEEL_oCufbP_H6cm3Wc9v-5xdux1-6g,1533
20
19
  angr/sim_manager.py,sha256=w7yTfWR-P9yoN5x85eeiNpj9dTrnjpJ3o5aoFpDAPnc,39396
21
20
  angr/sim_options.py,sha256=tfl57MFECmA7uvMMtQrRRbpG8g_A9jKOzwY6nApTW6Y,17782
@@ -23,7 +22,7 @@ angr/sim_procedure.py,sha256=EfXQEX-Na7iNtoqc2-KQhs7AR3tsiMYnxEF1v_lL_ok,26235
23
22
  angr/sim_state.py,sha256=qK6XPl2Q23xEXBud_SBy1fzVPPcrlx0PEQwMtRKBaBI,33893
24
23
  angr/sim_state_options.py,sha256=dsMY3UefvL7yZKXloubMhzUET3N2Crw-Fpw2Vd1ouZQ,12468
25
24
  angr/sim_type.py,sha256=M3Jn3RWYRFnq152pwBFcfPXc9XEyAKqMzkvDgUUG6fU,134454
26
- angr/sim_variable.py,sha256=Vffll5Vi0sAMrKsyb5GLI2uT1JEveIwF8Sw-luISvHA,12257
25
+ angr/sim_variable.py,sha256=3DssmMw5G7m_-MYToJ3LBP-ooy2UQEuI2YgxIuX3d4Y,13177
27
26
  angr/slicer.py,sha256=DND0BERanYKafasRH9MDFAng0rSjdjmzXj2-phCD6CQ,10634
28
27
  angr/state_hierarchy.py,sha256=qDQCUGXmQm3vOxE3CSoiqTH4OAFFOWZZt9BLhNpeOhA,8484
29
28
  angr/tablespecs.py,sha256=Kx1e87FxTx3_ZN7cAHWZSRpdInT4Vfj5gExAWtLkLTw,3259
@@ -43,7 +42,7 @@ angr/analyses/complete_calling_conventions.py,sha256=nVrDHhCV3cawD_KxkAYj2fsszAs
43
42
  angr/analyses/congruency_check.py,sha256=QeYRrdrs_iluLLnKz3KUHkCTPRVl5PgM2T0ZXd786HA,16165
44
43
  angr/analyses/datagraph_meta.py,sha256=Ng0jqLD5ucRn_fBXhYq3l6scs3kczRk6Sk-Sen1forc,3414
45
44
  angr/analyses/ddg.py,sha256=AWPPsL2bfTAua5meuQfPFL6b29PLpCLZzw-LGCv5iVo,63214
46
- angr/analyses/disassembly.py,sha256=iwKQZ7mqQCdGV3IO-kVMif8-c6tSbKuhq2uIb0JFkK0,46341
45
+ angr/analyses/disassembly.py,sha256=p2jEYVhoAoInW-vNeJ4UZqw3jod4Ir8SRVHLNgb-3w8,46227
47
46
  angr/analyses/disassembly_utils.py,sha256=Pj9vnyji9fBDL3a3vAo2D3H4CfB-XrvVDLIsNXrp9pU,2877
48
47
  angr/analyses/dominance_frontier.py,sha256=kRoOCr3EaIUW1YnvtjmKFJW65zYsJHNe-HtVx2LR15s,2002
49
48
  angr/analyses/find_objects_static.py,sha256=27uxIeRA8nJ1XiuGay0oGVYKDvWOI9HFVSuPVXHJT7U,10264
@@ -55,10 +54,10 @@ angr/analyses/pathfinder.py,sha256=_prNqmRUSuSt2ZCP8qbvNN7pw7mtM8pWr9IL0AO6XL8,1
55
54
  angr/analyses/proximity_graph.py,sha256=-g7pNpbP2HQhKW3w1Eff23K8vAsgWWYoe3wVxRh3Lhk,16066
56
55
  angr/analyses/reassembler.py,sha256=UXrDQNJtn4RUurpbIyMVpQ3AZ0VGVQZatoGHziEHvU0,98357
57
56
  angr/analyses/s_liveness.py,sha256=K4soSrcQE9pIn7Yf2Lb3LZEu1ymuQVpWzOqLKunFDGQ,7974
58
- angr/analyses/s_propagator.py,sha256=wdOzVzN-urmEim5zHL6vEj78uiTjZ7XIbXed60LLK38,24928
57
+ angr/analyses/s_propagator.py,sha256=MwGW7Gp9DVdUD5qMPkuqtBs4xaq2ZpxGu_AueTQpxsQ,24857
59
58
  angr/analyses/smc.py,sha256=UyVaTBms0KI9jRUBhbnz1s6ez_K_oRy4qoPsvxwnoQY,5177
60
59
  angr/analyses/soot_class_hierarchy.py,sha256=R4xeacn-a_Q7PxSyj_stu5mnglZkPB5US5srKChX3mk,8740
61
- angr/analyses/stack_pointer_tracker.py,sha256=M75GLS_YsnjjKwZ8_AZftG8l27Z45fPYwiid2rksTJM,38151
60
+ angr/analyses/stack_pointer_tracker.py,sha256=MX4wcvmTpV9HsCybYofYdkSt3aaCwXL94RSJJ1tPD5o,38082
62
61
  angr/analyses/static_hooker.py,sha256=AYJXoHtdq2m-MgpJbx4eur7wy7llrKXvsVM5NdPcKHU,1852
63
62
  angr/analyses/veritesting.py,sha256=M6WNsbgiv4ScFPQIaFzujNFya66rQ9GSieaRLuC6RSo,25062
64
63
  angr/analyses/vfg.py,sha256=04X_mup9P82bkQIXMju3_DBPPJB1TytA_7RR9uAu3tU,72868
@@ -73,9 +72,9 @@ angr/analyses/cfg/__init__.py,sha256=-w8Vd6FD6rtjlQaQ7MxwmliFgS2zt-kZepAY4gHas04
73
72
  angr/analyses/cfg/cfb.py,sha256=scykl1FJvqcTe2x69zreWi0PG_zYMbka3k6tlRwaD_g,15367
74
73
  angr/analyses/cfg/cfg.py,sha256=dc9M91CaLeEKduYfMwpsT_01x6XyYuoNvgvcDKtbN-I,3177
75
74
  angr/analyses/cfg/cfg_arch_options.py,sha256=_XRewFZ51SeNaxChadb6_ER7-8LW8KXeTIpoP8_iRj0,3506
76
- angr/analyses/cfg/cfg_base.py,sha256=VEsUvo4ySnvMvrphcJjAhCHfh7BX9jmY7KrHc2U_Hgc,123441
75
+ angr/analyses/cfg/cfg_base.py,sha256=pcbDLbuIqrJ9phLn3cS-allL-ZTIxWCUh7bhypW7-Hg,124454
77
76
  angr/analyses/cfg/cfg_emulated.py,sha256=wL0ABJMZ8EwKbNjrpE_eqCkZpHDt4y6lmoQOmAIcJMQ,148235
78
- angr/analyses/cfg/cfg_fast.py,sha256=dFqsEf_YvuNxbQsAzk1RxxMikvyiwMptxX2a-75VWY0,231021
77
+ angr/analyses/cfg/cfg_fast.py,sha256=bNVUjqY3Zx-zB_6sCh9xf7rYAEwBLAyx2lBzBE45F60,231271
79
78
  angr/analyses/cfg/cfg_fast_soot.py,sha256=8YgMtY_8w4nAMcHR6n-q_eFvKwsvNz0anUH7EzIL1B4,25924
80
79
  angr/analyses/cfg/cfg_job_base.py,sha256=Zshze972MakTsd-licQz77lac17igQaaTsAteHeHhYQ,5974
81
80
  angr/analyses/cfg/indirect_jump_resolvers/__init__.py,sha256=qWiTSIAQgXWmaYa9YYaiKsSTwUVClymaXv9sCX-bY-k,835
@@ -109,11 +108,11 @@ angr/analyses/decompiler/block_io_finder.py,sha256=xMwG8Bi69OGNYVs0U0F4yxM8kEsny
109
108
  angr/analyses/decompiler/block_similarity.py,sha256=SseCdWgh-kS9q_C_BRxlQ4OwCRQfg-9IyncxKXm_OG8,6849
110
109
  angr/analyses/decompiler/block_simplifier.py,sha256=Di5UXgBIXp0pa3_ubHY4k9vj927xAFR3oCUZ16Q3WvE,14229
111
110
  angr/analyses/decompiler/callsite_maker.py,sha256=UKrRCzts2eIc-6tyWsZdrJ6S925cieal9MAz34jNwTo,23140
112
- angr/analyses/decompiler/clinic.py,sha256=kkOdKzanudEhAKxT99JKkWFhZE8eD7xewqctY0l1IR0,146398
111
+ angr/analyses/decompiler/clinic.py,sha256=VenquoBNVGsgz3TUKg0eDEakp_AB_gNVoZAAn_WD4WE,150337
113
112
  angr/analyses/decompiler/condition_processor.py,sha256=61VDwVA1e-oKsv0N8kvh3c5QOdQixrkBZcm3RLuw7KU,52679
114
113
  angr/analyses/decompiler/decompilation_cache.py,sha256=gAZtyXs-eoFj3680bTrJVAZcIoaPsFK0kayu30NYLb4,1509
115
114
  angr/analyses/decompiler/decompilation_options.py,sha256=NDB67DI1L-stvJ4b1eQkfV26HgDJ_rG9-6PEv08G9-8,8195
116
- angr/analyses/decompiler/decompiler.py,sha256=qbYhdYbWxkbyHYf3D4py7ehXvsOUbXWgz7aCtTXixRE,29828
115
+ angr/analyses/decompiler/decompiler.py,sha256=D6NdTrhB2QsB9g-Fbc5MOAHk0vdcfEMG_N54lYawAxM,30269
117
116
  angr/analyses/decompiler/empty_node_remover.py,sha256=_RAGjqDyRmannEGPcMmWkL7em990-_sKgl5CYreb-yI,7403
118
117
  angr/analyses/decompiler/expression_narrower.py,sha256=bgTHxNljl3ghUmNMIdz8kpi4v7iMc8wQh508eCugBtc,10337
119
118
  angr/analyses/decompiler/goto_manager.py,sha256=GUWt3Y_NCpmreIt4plxX5Y3UO2V8IVGZuRtF2GqI-cw,4006
@@ -142,7 +141,7 @@ angr/analyses/decompiler/dephication/__init__.py,sha256=xd6YSsoXLKVB2g52l-TZGsDw
142
141
  angr/analyses/decompiler/dephication/dephication_base.py,sha256=9HdE_zKnakLSYJZrymbwOm1FfwHPcZOp2DkHvmmiyA8,3235
143
142
  angr/analyses/decompiler/dephication/graph_dephication.py,sha256=xjm_OrWgcuDIoDCEAhbW4xGzCHwOPw9ya8IroZH3qf4,2169
144
143
  angr/analyses/decompiler/dephication/graph_rewriting.py,sha256=vhBGSu1VN2Yl7eethD5fiatHPOjGNs4JSov5x-SMFFw,3400
145
- angr/analyses/decompiler/dephication/graph_vvar_mapping.py,sha256=_PUDDSNGLqpfiuy96s7ZD_8c_29x8hrNCrADaCxgSrI,14081
144
+ angr/analyses/decompiler/dephication/graph_vvar_mapping.py,sha256=k1WWuKhBojpdCXGVqm6qLl62emiHSQCG6UVyTL0_-LQ,14116
146
145
  angr/analyses/decompiler/dephication/rewriting_engine.py,sha256=x_sYM1gg56JqeQNOWNHoZ83AN-2h-nAwzgKBoeiotLQ,17646
147
146
  angr/analyses/decompiler/dephication/seqnode_dephication.py,sha256=Y5On7C6glk3VztwbQFzKYlTTRf2vu9bB5fcRH3rbuhQ,4802
148
147
  angr/analyses/decompiler/optimization_passes/__init__.py,sha256=y7ND9Wg98M5SoMGuOespoLeh1s-wFqKyeW2_4esDsiw,5236
@@ -266,7 +265,7 @@ angr/analyses/decompiler/ssailification/traversal_engine.py,sha256=oXTf4Z3Q2vPSG
266
265
  angr/analyses/decompiler/ssailification/traversal_state.py,sha256=RDs2mTc6GYnbMom2gBfNfNMcazKMSkhemEmse8uELTY,1558
267
266
  angr/analyses/decompiler/structured_codegen/__init__.py,sha256=mxG4yruPAab8735wVgXZ1zu8qFPz-njKe0m5UcywE3o,633
268
267
  angr/analyses/decompiler/structured_codegen/base.py,sha256=DEeNrBOC8AAJb-qFyUoYeX8fpHSPmAsutCDF-0UhaQ4,3782
269
- angr/analyses/decompiler/structured_codegen/c.py,sha256=q4hYqQrqgi8-xA3SE4IYG4RsfrRreiVQdpwFgOvqEhY,147827
268
+ angr/analyses/decompiler/structured_codegen/c.py,sha256=3POMT1VEQSzn12TlJ6nhC69xy8pdfFW0pAP8CQ3PZA4,148259
270
269
  angr/analyses/decompiler/structured_codegen/dummy.py,sha256=JZLeovXE-8C-unp2hbejxCG30l-yCx4sWFh7JMF_iRM,570
271
270
  angr/analyses/decompiler/structured_codegen/dwarf_import.py,sha256=J6V40RuIyKXN7r6ESftIYfoREgmgFavnUL5m3lyTzlM,7072
272
271
  angr/analyses/decompiler/structuring/__init__.py,sha256=kEFP-zv9CZrhJtLTKwT9-9cGVTls71wLYaLDUuYorBU,711
@@ -365,7 +364,7 @@ angr/analyses/s_reaching_definitions/s_reaching_definitions.py,sha256=_SooCn9qpw
365
364
  angr/analyses/typehoon/__init__.py,sha256=KjKBUZadAd3grXUy48_qO0L4Me-riSqPGteVDcTL59M,92
366
365
  angr/analyses/typehoon/dfa.py,sha256=41lzhE-QmkC342SjfaaPI41lr4Au5XROTu_7oenvg7g,3823
367
366
  angr/analyses/typehoon/lifter.py,sha256=hxYJmM_A0Kl6YgY7NyWBtA3ieaY49Ey3ESCHC61lMys,4000
368
- angr/analyses/typehoon/simple_solver.py,sha256=QMHPHz6veiu6xp9BeeTTumi5ispgjCnNo_IP8ESiFE0,57495
367
+ angr/analyses/typehoon/simple_solver.py,sha256=lSbJi_nc2WsCo9Tb-ebKcJ41KxJiRhHVr2vnLa7V2VI,57597
369
368
  angr/analyses/typehoon/translator.py,sha256=_UE1JC4KNDXXl4plula9OApK1ee07z9BFdX9HKa5uqw,10568
370
369
  angr/analyses/typehoon/typeconsts.py,sha256=jQEVziyt3LnctrSrCtbUSPi-0tjl8DKoLMFfaOEG3lI,7939
371
370
  angr/analyses/typehoon/typehoon.py,sha256=IXC_a2N7hsq8wwUrx_UITzmjTApMZWVGYxYBtS3PBL8,12152
@@ -377,10 +376,10 @@ angr/analyses/unpacker/packing_detector.py,sha256=SO6aXR1gZkQ7w17AAv3C1-U2KAc0yL
377
376
  angr/analyses/variable_recovery/__init__.py,sha256=eA1SHzfSx8aPufUdkvgMmBnbI6VDYKKMJklcOoCO7Ao,208
378
377
  angr/analyses/variable_recovery/annotations.py,sha256=2va7cXnRHYqVqXeVt00QanxfAo3zanL4BkAcC0-Bk20,1438
379
378
  angr/analyses/variable_recovery/engine_ail.py,sha256=6G-Py2kOvdEIXMA_LBa8S-ns2gLgRiGWrA3lmaaDGcA,33392
380
- angr/analyses/variable_recovery/engine_base.py,sha256=nTvTYiUiVXJKwDd9Va_KWv1EYLceIQJ6Fnhv4nTIIws,52404
379
+ angr/analyses/variable_recovery/engine_base.py,sha256=EB_b_VFxE2JF30HbkrN2auapdkPjxpYPbPNbgNw_tWk,52118
381
380
  angr/analyses/variable_recovery/engine_vex.py,sha256=5Q2S1jAr7tALa0m0okqBHBe3cUePmJlnV1Grxos1xbo,21344
382
381
  angr/analyses/variable_recovery/irsb_scanner.py,sha256=1dL2IC7fZGuRrhmcpa2Q-G666aMPmbM8zSzmIRpLNSY,5141
383
- angr/analyses/variable_recovery/variable_recovery.py,sha256=s5hwY9oOibhLxsJIePhYRmrX0mrDIi_zKkfNblwYyhE,22169
382
+ angr/analyses/variable_recovery/variable_recovery.py,sha256=I45eVUpOOcSobA_QyXl3aRNa0kppJH_7YOj95fPPTdE,22272
384
383
  angr/analyses/variable_recovery/variable_recovery_base.py,sha256=lbg4HYo3UVDgy59RVUcxRqY42l8odNblchE2Y4YmlFE,15670
385
384
  angr/analyses/variable_recovery/variable_recovery_fast.py,sha256=JP_YSj2b9B4BS7u-c6x-Kyc4IjXoRwBAg8hZkpuGax8,27637
386
385
  angr/angrdb/__init__.py,sha256=Jin6JjtVadtqsgm_a6gQGx3Hn7BblkbJvdcl_GwZshg,307
@@ -419,7 +418,8 @@ angr/distributed/worker.py,sha256=MZVlxC9ksC6xUG2fy5h08Vv9R8RiG7QBQIomPYdFIJs,60
419
418
  angr/engines/__init__.py,sha256=_3oRkiTrPO7QPiCg3qXymt4o9ZAOrAHt5pdfjkp3W9k,1661
420
419
  angr/engines/engine.py,sha256=2kwOT-sbxKXAVX2PmsPTr8Ax36Vxq6hkRdDKaITBQNc,657
421
420
  angr/engines/failure.py,sha256=redqmkSuJoIc828hpmX3CTk4EqQ-PeEn7MK2uIqSAc0,1040
422
- angr/engines/hook.py,sha256=iIiy4sTtWrAzKeg95DjocuvmXz5bvvLCDYGOUAGphrY,2587
421
+ angr/engines/hook.py,sha256=lAEYYAXQY_GDOpsz3JZ7IswxrBccZnZ6EaQwyNBb4W8,2590
422
+ angr/engines/icicle.py,sha256=tBH6Fc0PtkIgHRlTMpv_-BHQOhbWTdwrGy78Z0QAB9A,8558
423
423
  angr/engines/procedure.py,sha256=8kgFH56nkqSWm0p1apuGBaFngl-4BnAzE0bXhq9mc6Y,2561
424
424
  angr/engines/successors.py,sha256=oQCW7Knxb4zz7EP6Mi6RrRNrwuhbv5fnX8UL76nn0sY,29501
425
425
  angr/engines/syscall.py,sha256=7wYTriURsDTTi3PEBj4u3ZWDi7RHBV-gRrxTRxwMAVk,2166
@@ -428,11 +428,11 @@ angr/engines/light/__init__.py,sha256=-634kaOlcs8ZAsMNtOML7FXP3svyZIrJb3ikq0isFv
428
428
  angr/engines/light/data.py,sha256=3bvC-7e6isb4aGM7IrdpZelJDSWQ0KflC-oNpCDT7tI,21243
429
429
  angr/engines/light/engine.py,sha256=EQCwbipfZ_FDA-17UX0FwdhgbeWuJUagbSEc672zZjw,46429
430
430
  angr/engines/pcode/__init__.py,sha256=KWBnZnLYR3qANzXvxOt3XJq6cR57mQeNvugPBh7gr8s,195
431
- angr/engines/pcode/behavior.py,sha256=ycNNTNHlCJFG6fPtOwRHbI3c0fkY5pYyPA--k3Kz-WY,29406
431
+ angr/engines/pcode/behavior.py,sha256=9lSyjTUW_mbi6nvZ028cVI4-1NQ0A2NSY1RRQmNThhE,29359
432
432
  angr/engines/pcode/cc.py,sha256=brVglfSNnpDbRRcG-KO9EZ5NMMlmtDzP1n4kap7gKRY,3236
433
- angr/engines/pcode/emulate.py,sha256=36RgLy9bmpB3r_RCyDh3iudhKyaaBtlvLYPf3X1LlOA,16732
433
+ angr/engines/pcode/emulate.py,sha256=YlFHfXk8WmABiwVRJINP4ekMAY2b7dbvrpLrE2BfLXQ,16670
434
434
  angr/engines/pcode/engine.py,sha256=aFVvBYkVzZ8A5NkC2SblDU6Mlfk0ioVn7xDhp0iG8-8,9930
435
- angr/engines/pcode/lifter.py,sha256=cR4Oh6wgjEpAjMvMREdYpGtPOHKEZuf3UnmCm4d4UuE,52481
435
+ angr/engines/pcode/lifter.py,sha256=KOSKbMG34kqYLUkBnRibEejFv1TRZRFxDL3uUX-7cQk,52336
436
436
  angr/engines/soot/__init__.py,sha256=0EUiUmGrPhM-MG9nrvJDYi9cIBrCTx1wff3Z7nRkTGs,92
437
437
  angr/engines/soot/engine.py,sha256=rHKbnO9YBOAd1DJ-a33vAMseFt_b3iDhArTFdgmyVsc,17065
438
438
  angr/engines/soot/exceptions.py,sha256=if9tvb-SDUb3JVZAhUBOYxbmS_8Aq-7gsVa2kh76O5U,258
@@ -483,7 +483,7 @@ angr/engines/vex/lifter.py,sha256=BqeajzzpLL32nmGaszWASBPDhluhTec2m3ods1ZTIIo,17
483
483
  angr/engines/vex/claripy/__init__.py,sha256=4B8H1VOHrrKJMjAXZkZ0r_02issFP_bxDJJMw50yVe4,109
484
484
  angr/engines/vex/claripy/ccall.py,sha256=1ozZd6hLoFFcbREohzqJPu8zc34QVrYomnjwtgM40JI,82955
485
485
  angr/engines/vex/claripy/datalayer.py,sha256=kb-QSvwRzc6Mufwsv012Tgg_PNJPUTec8ElSuJcFzNQ,4971
486
- angr/engines/vex/claripy/irop.py,sha256=aN5-kY_OCR2_Z6GrhxY03jv49GsdCOauHuaXeBJUtMw,46240
486
+ angr/engines/vex/claripy/irop.py,sha256=_xiVGT5YbguTm8c0DaAqHnPUVrD2lp3ELtiBJTPwTOA,46240
487
487
  angr/engines/vex/heavy/__init__.py,sha256=XkIvjUOyEY9XN_zjM3ozzdSDqbMJHGm1XbehwhshlBE,376
488
488
  angr/engines/vex/heavy/actions.py,sha256=Q08wb2TK5HfDduAf8PRXY58h8iIOeCuArNzALzIf0Tk,8668
489
489
  angr/engines/vex/heavy/concretizers.py,sha256=SHojrhwpJHlSTOPooX_2IZOv0kOOr9D6PJs52rdUlIQ,14826
@@ -544,8 +544,8 @@ angr/knowledge_plugins/cfg/cfg_node.py,sha256=mAvQ8XAEURM7y0suc_S9lfxCmfXSTJHmWB
544
544
  angr/knowledge_plugins/cfg/indirect_jump.py,sha256=W3KWpH7Sx-6Z7h_BwQjCK_XfP3ce_MaeAu_Aaq3D3qg,2072
545
545
  angr/knowledge_plugins/cfg/memory_data.py,sha256=QLxFZfrtwz8u6UJn1L-Sxa-C8S0Gy9IOlfNfHCLPIow,5056
546
546
  angr/knowledge_plugins/functions/__init__.py,sha256=asiLNiT6sHbjP6eU-kDpawIoVxv4J35cwz5yQHtQ2E0,167
547
- angr/knowledge_plugins/functions/function.py,sha256=vzpTLise4KKkLkQwq9LRYZ4NUkioh-zZphwBIG74euY,70770
548
- angr/knowledge_plugins/functions/function_manager.py,sha256=YWp9Hc-Rx9iYChJ3hFv9Tjat-6ZUidv1xsSZLQ2tL9Q,20469
547
+ angr/knowledge_plugins/functions/function.py,sha256=HUg5e5z7cIJScD-OB0g7u7R3wCFcIpluqIDD9V0_atM,71215
548
+ angr/knowledge_plugins/functions/function_manager.py,sha256=VHkQWCrEgv-eFCAouztU0UTXI38L6RJuviokEPrerSc,23474
549
549
  angr/knowledge_plugins/functions/function_parser.py,sha256=DTdVwYt6nXLMc0EOh-V_GhvZYQ947UNBaA77qn7Y6Vo,12379
550
550
  angr/knowledge_plugins/functions/soot_function.py,sha256=OzCvQPWxnjbwPWTW0JXrQey4zyaayHD_v6ZA7nJ4YJw,4850
551
551
  angr/knowledge_plugins/key_definitions/__init__.py,sha256=-x1VGH3LHMze3T-RygodvUG3oXXa5jhKvjXoPKyiU_0,432
@@ -569,7 +569,7 @@ angr/knowledge_plugins/propagations/propagation_model.py,sha256=5ehnHl--YL_YLiOc
569
569
  angr/knowledge_plugins/propagations/states.py,sha256=GIrAeYDcW75iEGg5j9MUy50ocjLSCfewBiLn8FFfXzA,18940
570
570
  angr/knowledge_plugins/variables/__init__.py,sha256=7UnBITiTA-k3QsxRv7DdDWBu30XlFprldPxlTS4GbdE,154
571
571
  angr/knowledge_plugins/variables/variable_access.py,sha256=brlZgrdtUW7GI8NQMjtuBVwcqxGE0E4nHW9tD1sTmXs,3719
572
- angr/knowledge_plugins/variables/variable_manager.py,sha256=IFvjcwQG-EJauvklilP4BbRojYOo-Bi-97SDKcWhwOU,55382
572
+ angr/knowledge_plugins/variables/variable_manager.py,sha256=k4dbA49UfKxnMWOT4YKkq5fbAhvX1Au7600Rh7VcMhI,55690
573
573
  angr/knowledge_plugins/xrefs/__init__.py,sha256=5PhqVOtTZ27lCjJ9wp7akUeJydqILbyCBZK0gP7BGQs,193
574
574
  angr/knowledge_plugins/xrefs/xref.py,sha256=U2H1rfffp5EXoh0awlGxMBxA4K5MIwl3CXjV3Uih3tA,4856
575
575
  angr/knowledge_plugins/xrefs/xref_manager.py,sha256=1n373rtV91xicAfSUresRigsZ6qCBhPOaJKrN_SW3QY,4157
@@ -1310,11 +1310,11 @@ angr/storage/file.py,sha256=sb7DnGgDnozxRR3bwcLJIkUf1w7FBagS6795Ah7H_WI,48046
1310
1310
  angr/storage/memory_object.py,sha256=EyRSgADKDt0IMNfUoDfu-uE1ycpK7U30ORduxPUgk6w,6242
1311
1311
  angr/storage/memory_mixins/__init__.py,sha256=a4fY0pSAwgFALjPoDRJVHKt_oMCqia_JqiMzxvk6xpY,8597
1312
1312
  angr/storage/memory_mixins/actions_mixin.py,sha256=L9FlA0oyQ3gvEENfs5nvHhCYBeuKeyk_TyBh5sgiF64,3493
1313
- angr/storage/memory_mixins/address_concretization_mixin.py,sha256=NBIeezemaCSVludIoWzcciQit4C8E_vpK8nepcn-_u0,16535
1313
+ angr/storage/memory_mixins/address_concretization_mixin.py,sha256=w3d1IJ_HrcSEt77_31CuozKYbbWRg17wkhrT-O0EqwE,16535
1314
1314
  angr/storage/memory_mixins/bvv_conversion_mixin.py,sha256=5owT0luMQkYGqAdP-CSOD821Mrg4REFG_9uuo8uaphA,2888
1315
1315
  angr/storage/memory_mixins/clouseau_mixin.py,sha256=3Jr8L5hS72oxVWc7at2Wd7plOb7EL5_lxHIUpoYYouM,5828
1316
1316
  angr/storage/memory_mixins/conditional_store_mixin.py,sha256=OekCAvHcwnzUbRN5OTzlWL-H_x0gaFr-iB6xUdjDeVc,1025
1317
- angr/storage/memory_mixins/convenient_mappings_mixin.py,sha256=gLmp7bPvXRLGWFEHWuyAHQ1BdI5K9-47JhgdYyX2978,10290
1317
+ angr/storage/memory_mixins/convenient_mappings_mixin.py,sha256=ez-WWauvFzGzZrrohRSejI6h4Y_lqxtGUkE0SIzUPiA,10291
1318
1318
  angr/storage/memory_mixins/default_filler_mixin.py,sha256=9xwaHqJziT07dMtHtIU_ni0b_Wh9azPiTbPSnJ4ZS10,5992
1319
1319
  angr/storage/memory_mixins/dirty_addrs_mixin.py,sha256=qAS2QKTimhZMZ-m9QSMi9DgFQeNMmISj7S8VS-3m9hI,391
1320
1320
  angr/storage/memory_mixins/hex_dumper_mixin.py,sha256=YqP0r9-HsQd1GXx3Us5umSkBitcIPv-RBpcPhvFk718,3678
@@ -1385,9 +1385,9 @@ angr/utils/types.py,sha256=688trvR0_j93sfeRgFT1npcmjNGSx99m_IPe9Xyy9WY,4967
1385
1385
  angr/utils/ssa/__init__.py,sha256=HUJEZbwKUfAeI6u8P2SBC6ApgOgpsJKoPVrEQs4rnYc,15194
1386
1386
  angr/utils/ssa/tmp_uses_collector.py,sha256=rSpvMxBHzg-tmvhsfjn3iLyPEKzaZN-xpQrdslMq3J4,793
1387
1387
  angr/utils/ssa/vvar_uses_collector.py,sha256=O2aNZeM5DL8qatyhYuMhgbYGFp6Onm2yr9pKq1wRjA0,1347
1388
- angr-9.2.156.dist-info/licenses/LICENSE,sha256=PmWf0IlSz6Jjp9n7nyyBQA79Q5C2ma68LRykY1V3GF0,1456
1389
- angr-9.2.156.dist-info/METADATA,sha256=LLCsY-2SyQrd7UyKi3BhZJsq4SXGgb6jCiMhtRY8qT8,4426
1390
- angr-9.2.156.dist-info/WHEEL,sha256=R9Id3flgwWD6PEEFIbX32HZPJvT_pv4S8rL8s4HSHJY,113
1391
- angr-9.2.156.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1392
- angr-9.2.156.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1393
- angr-9.2.156.dist-info/RECORD,,
1388
+ angr-9.2.157.dist-info/licenses/LICENSE,sha256=PmWf0IlSz6Jjp9n7nyyBQA79Q5C2ma68LRykY1V3GF0,1456
1389
+ angr-9.2.157.dist-info/METADATA,sha256=qewESjSI6IZWE3UNd9Fw9jivNDyrxxWhxcgw7KhXe6c,4393
1390
+ angr-9.2.157.dist-info/WHEEL,sha256=X7vFD4UJJp97OQSPwoOZT7uJzZgeXLrkZ6EfrHpRsAc,113
1391
+ angr-9.2.157.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1392
+ angr-9.2.157.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1393
+ angr-9.2.157.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.7.1)
2
+ Generator: setuptools (80.8.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp310-cp310-manylinux2014_aarch64
5
5
 
angr/rustylib.pyi DELETED
@@ -1,165 +0,0 @@
1
- class Segment:
2
- """
3
- A memory block
4
- """
5
-
6
- start: int
7
- end: int
8
- sort: str | None
9
-
10
- def __init__(self, start: int, end: int, sort: str | None = None) -> None:
11
- """
12
- Initialize a Segment
13
-
14
- :arg start: Start address.
15
- :arg end: End address.
16
- :arg sort: Type of the segment, can be code, data, etc.
17
- """
18
-
19
- def copy(self) -> Segment:
20
- """
21
- Make a copy of the Segment
22
-
23
- :returns: A copy of the Segment instance.
24
- """
25
-
26
- @property
27
- def size(self) -> int:
28
- """
29
- Calculate the size of the Segment
30
-
31
- :returns: Size of the Segment
32
- """
33
-
34
- def __repr__(self) -> str: ...
35
-
36
- class SegmentList:
37
- """
38
- SegmentList describes a series of segmented memory blocks. You may query whether an address belongs to any of the
39
- blocks or not, and obtain the exact block(segment) that the address belongs to.
40
- """
41
-
42
- def __init__(self) -> None:
43
- """
44
- Initialize an empty SegmentList.
45
- """
46
-
47
- def __len__(self) -> int:
48
- """
49
- Get the number of segments in the list.
50
-
51
- :returns: Number of segments.
52
- """
53
-
54
- def __getitem__(self, idx: int) -> Segment:
55
- """
56
- Get a segment by index.
57
-
58
- :arg idx: Index of the segment.
59
- :returns: The segment at the specified index.
60
- :raises IndexError: If the index is out of range.
61
- """
62
-
63
- @property
64
- def occupied_size(self) -> int:
65
- """
66
- The sum of sizes of all blocks.
67
-
68
- :returns: An integer representing the total occupied size.
69
- """
70
-
71
- @property
72
- def has_blocks(self) -> bool:
73
- """
74
- Returns if this segment list has any block or not.
75
-
76
- :returns: True if it's not empty, False otherwise.
77
- """
78
-
79
- def search(self, addr: int) -> int:
80
- """
81
- Checks which segment that the address `addr` should belong to, and, returns the offset of that segment.
82
- Note that the address may not actually belong to the block.
83
-
84
- :arg addr: The address to search.
85
- :returns: The offset of the segment.
86
- """
87
-
88
- def next_free_pos(self, address: int) -> int:
89
- """
90
- Returns the next free position with respect to an address, including that address itself.
91
-
92
- :arg address: The address to begin the search with (including itself).
93
- :returns: The next free position.
94
- :raises ValueError: If no free space is found after the address.
95
- """
96
-
97
- def next_pos_with_sort_not_in(
98
- self, address: int, sorts: set[str | None], max_distance: int | None = None
99
- ) -> int | None:
100
- """
101
- Returns the address of the next occupied block whose sort is not one of the specified ones.
102
-
103
- :arg address: The address to begin the search with (including itself).
104
- :arg sorts: A collection of sort strings.
105
- :arg max_distance: The maximum distance between `address` and the next position. Search will stop after
106
- we come across an occupied position that is beyond `address` + max_distance. This check
107
- will be disabled if `max_distance` is set to None.
108
- :returns: The next occupied position whose sort is not one of the specified ones, or None if no such position exists.
109
- """
110
-
111
- def is_occupied(self, address: int) -> bool:
112
- """
113
- Check if an address belongs to any segment.
114
-
115
- :arg address: The address to check.
116
- :returns: True if this address belongs to a segment, False otherwise.
117
- """
118
-
119
- def occupied_by_sort(self, address: int) -> str | None:
120
- """
121
- Check if an address belongs to any segment, and if yes, returns the sort of the segment.
122
-
123
- :arg address: The address to check.
124
- :returns: Sort of the segment that occupies this address, or None if the address is not occupied.
125
- """
126
-
127
- def occupied_by(self, address: int) -> tuple[int, int, str | None] | None:
128
- """
129
- Check if an address belongs to any segment, and if yes, returns the beginning, the size, and the sort of the
130
- segment.
131
-
132
- :arg address: The address to check.
133
- :returns: A tuple of (start, size, sort) if the address is occupied, or None if it's not.
134
- """
135
-
136
- def occupy(self, address: int, size: int, sort: str | None = None) -> None:
137
- """
138
- Include a block, specified by (address, size), in this segment list.
139
-
140
- :arg address: The starting address of the block.
141
- :arg size: Size of the block.
142
- :arg sort: Type of the block.
143
- """
144
-
145
- def release(self, address: int, size: int) -> None:
146
- """
147
- Remove a block, specified by (address, size), in this segment list.
148
-
149
- :arg address: The starting address of the block.
150
- :arg size: Size of the block.
151
- """
152
-
153
- def update(self, other: SegmentList) -> None:
154
- """
155
- Update this SegmentList with all segments from another SegmentList.
156
-
157
- :arg other: Another SegmentList to merge into this one.
158
- """
159
-
160
- def copy(self) -> SegmentList:
161
- """
162
- Make a copy of the SegmentList.
163
-
164
- :returns: A copy of the SegmentList instance.
165
- """