#
tokens: 49887/50000 7/1140 files (page 26/94)
lines: off (toggle) GitHub
raw markdown copy
This is page 26 of 94. Use http://codebase.md/cyfrin/aderyn?lines=false&page={x} to view the full context.

# Directory Structure

```
├── .cargo
│   └── config.toml
├── .git-blame-ignore-revs
├── .gitattributes
├── .github
│   ├── images
│   │   ├── aderyn_logo.png
│   │   ├── poweredbycyfrinblack.png
│   │   └── poweredbycyfrinblue.png
│   ├── ISSUE_TEMPLATE
│   │   ├── bug_report.md
│   │   ├── false_positive_issue.md
│   │   └── feature_request.md
│   └── workflows
│       ├── cargo.yml
│       ├── dependencies.yml
│       ├── release.yml
│       ├── reports.yml
│       └── toml.yml
├── .gitignore
├── .gitmodules
├── .vscode
│   └── settings.json
├── aderyn
│   ├── Cargo.toml
│   ├── oranda.json
│   ├── README.md
│   ├── src
│   │   ├── birdsong.rs
│   │   ├── completions.rs
│   │   ├── lib.rs
│   │   ├── lsp.rs
│   │   ├── main.rs
│   │   ├── mcp.rs
│   │   └── panic.rs
│   └── templates
│       └── aderyn.toml
├── aderyn_core
│   ├── .gitignore
│   ├── Cargo.toml
│   ├── README.md
│   ├── src
│   │   ├── ast
│   │   │   ├── ast_nodes.rs
│   │   │   ├── ast.rs
│   │   │   ├── impls
│   │   │   │   ├── ctx
│   │   │   │   │   ├── utils.rs
│   │   │   │   │   └── workspace.rs
│   │   │   │   ├── ctx.rs
│   │   │   │   ├── disp
│   │   │   │   │   ├── blocks.rs
│   │   │   │   │   ├── contracts.rs
│   │   │   │   │   ├── enumerations.rs
│   │   │   │   │   ├── errors.rs
│   │   │   │   │   ├── events.rs
│   │   │   │   │   ├── expressions.rs
│   │   │   │   │   ├── functions.rs
│   │   │   │   │   ├── identifiers.rs
│   │   │   │   │   ├── literals.rs
│   │   │   │   │   ├── modifiers.rs
│   │   │   │   │   ├── statements.rs
│   │   │   │   │   ├── structures.rs
│   │   │   │   │   ├── types.rs
│   │   │   │   │   ├── user_defined_value_types.rs
│   │   │   │   │   ├── using_for_directives.rs
│   │   │   │   │   └── variables.rs
│   │   │   │   ├── disp.rs
│   │   │   │   ├── node
│   │   │   │   │   ├── blocks.rs
│   │   │   │   │   ├── contracts.rs
│   │   │   │   │   ├── documentation.rs
│   │   │   │   │   ├── enumerations.rs
│   │   │   │   │   ├── errors.rs
│   │   │   │   │   ├── events.rs
│   │   │   │   │   ├── expressions.rs
│   │   │   │   │   ├── functions.rs
│   │   │   │   │   ├── identifiers.rs
│   │   │   │   │   ├── import_directives.rs
│   │   │   │   │   ├── literals.rs
│   │   │   │   │   ├── modifiers.rs
│   │   │   │   │   ├── pragma_directives.rs
│   │   │   │   │   ├── source_units.rs
│   │   │   │   │   ├── statements.rs
│   │   │   │   │   ├── structures.rs
│   │   │   │   │   ├── types.rs
│   │   │   │   │   ├── user_defined_value_types.rs
│   │   │   │   │   ├── using_for_directives.rs
│   │   │   │   │   └── variables.rs
│   │   │   │   ├── node.rs
│   │   │   │   ├── own
│   │   │   │   │   ├── hashing.rs
│   │   │   │   │   ├── node_id.rs
│   │   │   │   │   ├── source_units.rs
│   │   │   │   │   └── utils.rs
│   │   │   │   └── own.rs
│   │   │   ├── impls.rs
│   │   │   ├── macros.rs
│   │   │   ├── magic.rs
│   │   │   ├── node_type.rs
│   │   │   └── yul.rs
│   │   ├── ast.rs
│   │   ├── audit
│   │   │   ├── attack_surface.rs
│   │   │   ├── auditor.rs
│   │   │   ├── entrypoint.rs
│   │   │   └── public_functions_no_sender.rs
│   │   ├── audit.rs
│   │   ├── context
│   │   │   ├── browser
│   │   │   │   ├── ancestral_line.rs
│   │   │   │   ├── closest_ancestor.rs
│   │   │   │   ├── external_calls.rs
│   │   │   │   ├── extractor.rs
│   │   │   │   ├── immediate_children.rs
│   │   │   │   ├── location.rs
│   │   │   │   ├── macros.rs
│   │   │   │   ├── parent.rs
│   │   │   │   ├── peek_over.rs
│   │   │   │   ├── peek_under.rs
│   │   │   │   ├── peek.rs
│   │   │   │   ├── siblings.rs
│   │   │   │   ├── sort_nodes.rs
│   │   │   │   └── storage_vars.rs
│   │   │   ├── browser.rs
│   │   │   ├── capturable.rs
│   │   │   ├── flow
│   │   │   │   ├── display.rs
│   │   │   │   ├── error.rs
│   │   │   │   ├── kind.rs
│   │   │   │   ├── primitives.rs
│   │   │   │   ├── reducibles.rs
│   │   │   │   ├── tests.rs
│   │   │   │   ├── utils.rs
│   │   │   │   ├── visualizer.rs
│   │   │   │   └── voids.rs
│   │   │   ├── flow.rs
│   │   │   ├── graph
│   │   │   │   ├── callgraph
│   │   │   │   │   ├── legacy.rs
│   │   │   │   │   ├── new.rs
│   │   │   │   │   ├── tests.rs
│   │   │   │   │   ├── utils.rs
│   │   │   │   │   └── visit.rs
│   │   │   │   ├── callgraph.rs
│   │   │   │   ├── preprocess
│   │   │   │   │   ├── legacy.rs
│   │   │   │   │   └── new.rs
│   │   │   │   ├── preprocess.rs
│   │   │   │   ├── traits.rs
│   │   │   │   └── utils.rs
│   │   │   ├── graph.rs
│   │   │   ├── macros.rs
│   │   │   ├── mcp
│   │   │   │   ├── callgraph
│   │   │   │   │   ├── render.rs
│   │   │   │   │   ├── tool.rs
│   │   │   │   │   └── utils.rs
│   │   │   │   ├── callgraph.rs
│   │   │   │   ├── contract_surface
│   │   │   │   │   ├── render.rs
│   │   │   │   │   ├── tool.rs
│   │   │   │   │   └── util.rs
│   │   │   │   ├── contract_surface.rs
│   │   │   │   ├── list_contracts
│   │   │   │   │   ├── render.rs
│   │   │   │   │   └── tool.rs
│   │   │   │   ├── list_contracts.rs
│   │   │   │   ├── node_finder
│   │   │   │   │   ├── render.rs
│   │   │   │   │   ├── tool.rs
│   │   │   │   │   └── utils.rs
│   │   │   │   ├── node_finder.rs
│   │   │   │   ├── node_summarizer
│   │   │   │   │   ├── render.rs
│   │   │   │   │   ├── tool.rs
│   │   │   │   │   └── utils.rs
│   │   │   │   ├── node_summarizer.rs
│   │   │   │   ├── project_overview
│   │   │   │   │   ├── render.rs
│   │   │   │   │   └── tool.rs
│   │   │   │   ├── project_overview.rs
│   │   │   │   ├── tool_guide
│   │   │   │   │   └── tool.rs
│   │   │   │   └── tool_guide.rs
│   │   │   ├── mcp.rs
│   │   │   ├── router
│   │   │   │   ├── external_calls.rs
│   │   │   │   ├── internal_calls.rs
│   │   │   │   ├── modifier_calls.rs
│   │   │   │   └── tests.rs
│   │   │   ├── router.rs
│   │   │   └── workspace.rs
│   │   ├── context.rs
│   │   ├── detect
│   │   │   ├── detector.rs
│   │   │   ├── entrypoint.rs
│   │   │   ├── helpers.rs
│   │   │   ├── high
│   │   │   │   ├── _template.rs
│   │   │   │   ├── abi_encode_packed_hash_collision.rs
│   │   │   │   ├── arbitrary_transfer_from.rs
│   │   │   │   ├── const_func_changes_state.rs
│   │   │   │   ├── contract_locks_ether.rs
│   │   │   │   ├── dangerous_unary_operator.rs
│   │   │   │   ├── delegate_call_unchecked_address.rs
│   │   │   │   ├── delete_nested_mapping.rs
│   │   │   │   ├── dynamic_array_length_assignment.rs
│   │   │   │   ├── enumerable_loop_removal.rs
│   │   │   │   ├── eth_send_unchecked_address.rs
│   │   │   │   ├── experimental_encoder.rs
│   │   │   │   ├── function_selector_collision.rs
│   │   │   │   ├── incorrect_caret_operator.rs
│   │   │   │   ├── incorrect_erc20_interface.rs
│   │   │   │   ├── incorrect_erc721_interface.rs
│   │   │   │   ├── incorrect_shift_order.rs
│   │   │   │   ├── misused_boolean.rs
│   │   │   │   ├── msg_value_in_loops.rs
│   │   │   │   ├── multiple_constructors.rs
│   │   │   │   ├── nested_struct_in_mapping.rs
│   │   │   │   ├── out_of_order_retryable.rs
│   │   │   │   ├── pre_declared_variable_usage.rs
│   │   │   │   ├── reentrancy_state_change.rs
│   │   │   │   ├── reused_contract_name.rs
│   │   │   │   ├── rtlo.rs
│   │   │   │   ├── selfdestruct.rs
│   │   │   │   ├── signed_integer_storage_array.rs
│   │   │   │   ├── state_variable_shadowing.rs
│   │   │   │   ├── storage_array_memory_edit.rs
│   │   │   │   ├── strict_equality_contract_balance.rs
│   │   │   │   ├── tautological_compare.rs
│   │   │   │   ├── tautology_or_contradiction.rs
│   │   │   │   ├── tx_origin_used_for_auth.rs
│   │   │   │   ├── unchecked_low_level_call.rs
│   │   │   │   ├── unchecked_send.rs
│   │   │   │   ├── unprotected_initializer.rs
│   │   │   │   ├── unsafe_casting.rs
│   │   │   │   ├── weak_randomness.rs
│   │   │   │   └── yul_return.rs
│   │   │   ├── high.rs
│   │   │   ├── low
│   │   │   │   ├── _template.rs
│   │   │   │   ├── assert_state_change.rs
│   │   │   │   ├── block_timestamp_deadline.rs
│   │   │   │   ├── boolean_equality.rs
│   │   │   │   ├── builtin_symbol_shadowing.rs
│   │   │   │   ├── centralization_risk.rs
│   │   │   │   ├── constant_function_contains_assembly.rs
│   │   │   │   ├── costly_loop.rs
│   │   │   │   ├── dead_code.rs
│   │   │   │   ├── delegatecall_in_loop.rs
│   │   │   │   ├── deprecated_oz_function.rs
│   │   │   │   ├── division_before_multiplication.rs
│   │   │   │   ├── ecrecover.rs
│   │   │   │   ├── empty_block.rs
│   │   │   │   ├── empty_require_revert.rs
│   │   │   │   ├── function_initializing_state.rs
│   │   │   │   ├── function_pointer_in_constructor.rs
│   │   │   │   ├── inconsistent_type_names.rs
│   │   │   │   ├── incorrect_modifier.rs
│   │   │   │   ├── internal_function_used_once.rs
│   │   │   │   ├── large_numeric_literal.rs
│   │   │   │   ├── literal_instead_of_constant.rs
│   │   │   │   ├── local_variable_shadowing.rs
│   │   │   │   ├── missing_inheritance.rs
│   │   │   │   ├── modifier_used_only_once.rs
│   │   │   │   ├── multiple_placeholders.rs
│   │   │   │   ├── non_reentrant_not_first.rs
│   │   │   │   ├── push_0_opcode.rs
│   │   │   │   ├── redundant_statement.rs
│   │   │   │   ├── require_revert_in_loop.rs
│   │   │   │   ├── return_bomb.rs
│   │   │   │   ├── solmate_safe_transfer_lib.rs
│   │   │   │   ├── state_change_without_event.rs
│   │   │   │   ├── state_no_address_check.rs
│   │   │   │   ├── state_variable_could_be_constant.rs
│   │   │   │   ├── state_variable_could_be_immutable.rs
│   │   │   │   ├── state_variable_read_external.rs
│   │   │   │   ├── storage_array_length_not_cached.rs
│   │   │   │   ├── todo.rs
│   │   │   │   ├── unchecked_return.rs
│   │   │   │   ├── uninitialized_local_variable.rs
│   │   │   │   ├── unsafe_erc20_operation.rs
│   │   │   │   ├── unsafe_oz_erc721_mint.rs
│   │   │   │   ├── unspecific_solidity_pragma.rs
│   │   │   │   ├── unused_error.rs
│   │   │   │   ├── unused_import.rs
│   │   │   │   ├── unused_public_function.rs
│   │   │   │   ├── unused_state_variable.rs
│   │   │   │   └── void_constructor.rs
│   │   │   ├── low.rs
│   │   │   └── test_utils.rs
│   │   ├── detect.rs
│   │   ├── lib.rs
│   │   ├── stats
│   │   │   ├── cloc.rs
│   │   │   ├── dbg_tips.txt
│   │   │   ├── ignore.rs
│   │   │   ├── token.rs
│   │   │   └── util.rs
│   │   ├── stats.rs
│   │   ├── test_utils
│   │   │   └── load_source_unit.rs
│   │   ├── test_utils.rs
│   │   ├── visitor
│   │   │   ├── ast_visitor.rs
│   │   │   ├── macros.rs
│   │   │   └── workspace_visitor.rs
│   │   └── visitor.rs
│   ├── templates
│   │   └── mcp-tool-response
│   │       ├── callgraph.md
│   │       ├── contract_surface.md
│   │       ├── list_contracts.md
│   │       ├── node_finder_get_all.md
│   │       ├── node_finder_grep.md
│   │       ├── node_finder_search.md
│   │       ├── node_summarizer.md
│   │       ├── project_overview.md
│   │       └── tool_guide.md
│   └── tests
│       ├── common
│       │   ├── ancestral_line.rs
│       │   ├── closest_ancestor.rs
│       │   ├── immediate_children.rs
│       │   ├── immediate_parent.rs
│       │   ├── mod.rs
│       │   ├── new_ast_nodes.rs
│       │   ├── peek_over.rs
│       │   └── sibling.rs
│       └── traversal.rs
├── aderyn_driver
│   ├── .gitignore
│   ├── benches
│   │   └── detectors.rs
│   ├── Cargo.toml
│   ├── README.md
│   ├── src
│   │   ├── compile.rs
│   │   ├── config.rs
│   │   ├── display.rs
│   │   ├── driver.rs
│   │   ├── interface
│   │   │   ├── json.rs
│   │   │   ├── lsp.rs
│   │   │   ├── markdown.rs
│   │   │   ├── mod.rs
│   │   │   ├── sarif.rs
│   │   │   ├── tables.rs
│   │   │   └── util.rs
│   │   ├── lib.rs
│   │   ├── mcp.rs
│   │   ├── process.rs
│   │   └── runner.rs
│   └── tests
│       └── astgen.rs
├── bacon.toml
├── benchmarks
│   ├── aderyn
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── iteration_times.svg
│   │       │   └── pdf.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── iteration_times_small.svg
│   │       ├── iteration_times.svg
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── relative_iteration_times_small.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── SD.svg
│   │       └── typical.svg
│   ├── arbitrary-transfer-from
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── avoid-abi-encode-packed
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── block-timestamp-deadline
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── centralization-risk
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── constants-instead-of-literals
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── delegate-call-in-loop
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── deprecated-oz-functions
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── ecrecover
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── empty-block
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── hello_world
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── inconsistent-type-names
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── large-numeric-literal
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── non-reentrant-before-others
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── push-zero-opcode
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── report
│   │   └── index.html
│   ├── require-with-string
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── solmate-safe-transfer-lib
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unindexed-events
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unprotected-initializer
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unsafe-erc20-functions
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unsafe-oz-erc721-mint
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unspecific-solidity-pragma
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── useless-internal-function
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── useless-modifier
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── useless-public-function
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   └── zero-address-check
│       ├── base
│       │   ├── benchmark.json
│       │   ├── estimates.json
│       │   ├── sample.json
│       │   └── tukey.json
│       ├── change
│       │   └── estimates.json
│       ├── new
│       │   ├── benchmark.json
│       │   ├── estimates.json
│       │   ├── sample.json
│       │   └── tukey.json
│       └── report
│           ├── both
│           │   ├── pdf.svg
│           │   └── regression.svg
│           ├── change
│           │   ├── mean.svg
│           │   ├── median.svg
│           │   └── t-test.svg
│           ├── index.html
│           ├── MAD.svg
│           ├── mean.svg
│           ├── median.svg
│           ├── pdf_small.svg
│           ├── pdf.svg
│           ├── regression_small.svg
│           ├── regression.svg
│           ├── relative_pdf_small.svg
│           ├── relative_regression_small.svg
│           ├── SD.svg
│           ├── slope.svg
│           └── typical.svg
├── Cargo.lock
├── Cargo.toml
├── cli
│   ├── benchmarks.sh
│   └── reportgen.sh
├── CODEOWNERS
├── CONTRIBUTING.md
├── cyfrinup
│   ├── dynamic_script
│   └── why.md
├── deny.toml
├── dist-workspace.toml
├── funding.json
├── LICENSE
├── Makefile
├── package-lock.json
├── package.json
├── README.md
├── RELEASE_CHECKLIST.md
├── reports
│   ├── adhoc-sol-files-highs-only-report.json
│   ├── adhoc-sol-files-report.md
│   ├── ccip-functions-report.md
│   ├── empty_report.md
│   ├── hardhat-playground-report.md
│   ├── nft-report-icm.md
│   ├── nft-report.md
│   ├── prb-math-report.md
│   ├── report.json
│   ├── report.md
│   ├── report.sarif
│   ├── sablier-aderyn-toml-nested-root.md
│   ├── templegold-report.md
│   └── uniswap_profile.md
├── rust-toolchain.toml
├── rustfmt.toml
├── tests
│   ├── adhoc-sol-files
│   │   ├── aderyn.toml
│   │   ├── Counter.sol
│   │   ├── DemoASTNodes.sol
│   │   ├── Helper.sol
│   │   ├── InconsistentUints.sol
│   │   ├── inheritance
│   │   │   ├── ExtendedInheritance.sol
│   │   │   ├── IContractInheritance.sol
│   │   │   └── InheritanceBase.sol
│   │   ├── InternalFunctions.sol
│   │   ├── lib
│   │   │   └── ThisShouldBeExcluded.sol
│   │   ├── multiple-versions
│   │   │   ├── 0.4
│   │   │   │   ├── A.sol
│   │   │   │   └── B.sol
│   │   │   ├── 0.5
│   │   │   │   ├── A.sol
│   │   │   │   └── B.sol
│   │   │   ├── 0.6
│   │   │   │   ├── A.sol
│   │   │   │   └── B.sol
│   │   │   ├── 0.7
│   │   │   │   ├── A.sol
│   │   │   │   └── B.sol
│   │   │   └── 0.8
│   │   │       ├── A.sol
│   │   │       └── B.sol
│   │   ├── OnceModifierExample.sol
│   │   └── StateVariables.sol
│   ├── ast
│   │   ├── abstract_contract.json
│   │   ├── address_payable.json
│   │   ├── array_type_name.json
│   │   ├── ast-erc4626.json
│   │   ├── base_constructor_call.json
│   │   ├── bit_not.json
│   │   ├── call.json
│   │   ├── constructor.json
│   │   ├── contract_dep_order.json
│   │   ├── do_while.json
│   │   ├── documentation_1.json
│   │   ├── documentation_2.json
│   │   ├── documentation_3.json
│   │   ├── documentation_local_variable.json
│   │   ├── documentation_on_statements.json
│   │   ├── documentation_triple.json
│   │   ├── empty_block.json
│   │   ├── enum_value_declaration.json
│   │   ├── enum_value.json
│   │   ├── event_definition.json
│   │   ├── experimental_encoder_pragma.json
│   │   ├── fallback_and_reveice_ether.json
│   │   ├── fallback_payable.json
│   │   ├── fallback.json
│   │   ├── function_type.json
│   │   ├── function.json
│   │   ├── global_enum.json
│   │   ├── global_struct.json
│   │   ├── inheritance_specifier.json
│   │   ├── leave.json
│   │   ├── license.json
│   │   ├── long_type_name_binary_operation.json
│   │   ├── long_type_name_identifier.json
│   │   ├── loop.json
│   │   ├── mappings.json
│   │   ├── modifier_definition.json
│   │   ├── modifier_invocation.json
│   │   ├── mutability.json
│   │   ├── nested_functions.json
│   │   ├── non_utf8.json
│   │   ├── override.json
│   │   ├── placeholder_statement.json
│   │   ├── receive_ether.json
│   │   ├── short_type_name_ref.json
│   │   ├── short_type_name.json
│   │   ├── slot_offset.json
│   │   ├── smoke.json
│   │   ├── source_location.json
│   │   ├── string.json
│   │   ├── stringlit.json
│   │   ├── switch_default.json
│   │   ├── switch.json
│   │   ├── try_catch.json
│   │   ├── two_base_functions.json
│   │   ├── unicode.json
│   │   ├── used_errors.json
│   │   ├── userDefinedValueType.json
│   │   ├── using_for_directive.json
│   │   ├── var_access.json
│   │   └── yul_hex_literal.json
│   ├── contract-playground
│   │   ├── .github
│   │   │   └── workflows
│   │   │       └── test.yml
│   │   ├── .gitignore
│   │   ├── dot
│   │   │   └── .gitkeep
│   │   ├── foundry.toml
│   │   ├── README.md
│   │   ├── script
│   │   │   └── Counter.s.sol
│   │   ├── src
│   │   │   ├── AbstractContract.sol
│   │   │   ├── AderynIgnoreCustomDetectors.sol
│   │   │   ├── AdminContract.sol
│   │   │   ├── ArbitraryTransferFrom.sol
│   │   │   ├── AssemblyExample.sol
│   │   │   ├── AssertStateChange.sol
│   │   │   ├── auditor_mode
│   │   │   │   ├── ExternalCalls.sol
│   │   │   │   └── PublicFunctionsWithoutSenderCheck.sol
│   │   │   ├── BooleanEquality.sol
│   │   │   ├── BuiltinSymbolShadow.sol
│   │   │   ├── CacheArrayLength.sol
│   │   │   ├── CallGraphTests.sol
│   │   │   ├── Casting.sol
│   │   │   ├── cloc
│   │   │   │   ├── AnotherHeavilyCommentedContract.sol
│   │   │   │   ├── EmptyContractFile.sol
│   │   │   │   └── HeavilyCommentedContract.sol
│   │   │   ├── CompilerBugStorageSignedIntegerArray.sol
│   │   │   ├── ConstantFuncsAssembly.sol
│   │   │   ├── ConstantsLiterals.sol
│   │   │   ├── ConstFuncChangeState.sol
│   │   │   ├── ContractLocksEther.sol
│   │   │   ├── ContractWithTodo.sol
│   │   │   ├── control_flow
│   │   │   │   └── SimpleProgram.sol
│   │   │   ├── CostlyOperationsInsideLoops.sol
│   │   │   ├── Counter.sol
│   │   │   ├── CrazyPragma.sol
│   │   │   ├── DangerousStrictEquality1.sol
│   │   │   ├── DangerousStrictEquality2.sol
│   │   │   ├── DangerousUnaryOperator.sol
│   │   │   ├── DeadCode.sol
│   │   │   ├── DelegateCallWithoutAddressCheck.sol
│   │   │   ├── DeletionNestedMappingStructureContract.sol
│   │   │   ├── DeprecatedOZFunctions.sol
│   │   │   ├── DivisionBeforeMultiplication.sol
│   │   │   ├── DynamicArrayLengthAssignment.sol
│   │   │   ├── EmitAfterExternalCall.sol
│   │   │   ├── EmptyBlocks.sol
│   │   │   ├── EnumerableSetIteration.sol
│   │   │   ├── eth2
│   │   │   │   └── DepositContract.sol
│   │   │   ├── ExperimentalEncoder.sol
│   │   │   ├── ExternalCalls.sol
│   │   │   ├── FunctionInitializingState.sol
│   │   │   ├── FunctionPointers.sol
│   │   │   ├── FunctionSignatureCollision.sol
│   │   │   ├── HugeConstants.sol
│   │   │   ├── IgnoreEverything.sol
│   │   │   ├── InconsistentUints.sol
│   │   │   ├── IncorrectCaretOperator.sol
│   │   │   ├── IncorrectERC20.sol
│   │   │   ├── IncorrectERC721.sol
│   │   │   ├── IncorrectModifier.sol
│   │   │   ├── IncorrectShift.sol
│   │   │   ├── inheritance
│   │   │   │   ├── ExtendedInheritance.sol
│   │   │   │   ├── IContractInheritance.sol
│   │   │   │   └── InheritanceBase.sol
│   │   │   ├── InternalFunctions.sol
│   │   │   ├── KeccakContract.sol
│   │   │   ├── LocalVariableShadow.sol
│   │   │   ├── MissingInheritance.sol
│   │   │   ├── MisusedBoolean.sol
│   │   │   ├── MsgValueInLoop.sol
│   │   │   ├── MultipleConstructorSchemes.sol
│   │   │   ├── MultiplePlaceholders.sol
│   │   │   ├── nested
│   │   │   │   ├── 1
│   │   │   │   │   └── Nested.sol
│   │   │   │   └── 2
│   │   │   │       └── Nested.sol
│   │   │   ├── nested_mappings
│   │   │   │   ├── LaterVersion.sol
│   │   │   │   └── NestedMappings.sol
│   │   │   ├── OnceModifierExample.sol
│   │   │   ├── OnlyLibrary.sol
│   │   │   ├── OutOfOrderRetryable.sol
│   │   │   ├── parent_chain
│   │   │   │   └── ParentChainContract.sol
│   │   │   ├── PragmaRange.sol
│   │   │   ├── PreDeclaredVarUsage.sol
│   │   │   ├── PublicFunction.sol
│   │   │   ├── PublicVariableReadInExternalContext.sol
│   │   │   ├── RedundantStatements.sol
│   │   │   ├── ReturnBomb.sol
│   │   │   ├── reused_contract_name
│   │   │   │   ├── ContractA.sol
│   │   │   │   └── ContractB.sol
│   │   │   ├── RevertsAndRequriesInLoops.sol
│   │   │   ├── router
│   │   │   │   ├── ExternalCalls.sol
│   │   │   │   ├── FallbackAndReceiveOverrides.sol
│   │   │   │   ├── InternalCalls.sol
│   │   │   │   ├── ModifierCalls.sol
│   │   │   │   └── VarOverridesFunction.sol
│   │   │   ├── RTLO.sol
│   │   │   ├── SendEtherNoChecks.sol
│   │   │   ├── SendEtherNoChecksLibImport.sol
│   │   │   ├── StateChangeAfterExternalCall.sol
│   │   │   ├── StateShadowing.sol
│   │   │   ├── StateVariableCouldBeDeclaredConstant.sol
│   │   │   ├── StateVariableCouldBeDeclaredImmutable.sol
│   │   │   ├── StateVariables.sol
│   │   │   ├── StateVariablesChangesWithoutEvents.sol
│   │   │   ├── StateVariablesManipulation.sol
│   │   │   ├── StorageConditionals.sol
│   │   │   ├── StorageParameters.sol
│   │   │   ├── T11sTranferer.sol
│   │   │   ├── TautologicalCompare.sol
│   │   │   ├── TautologyOrContradiction.sol
│   │   │   ├── TestERC20.sol
│   │   │   ├── TransientKeyword.sol
│   │   │   ├── Trump.sol
│   │   │   ├── TxOriginUsedForAuth.sol
│   │   │   ├── U2.sol
│   │   │   ├── U3.sol
│   │   │   ├── U4.sol
│   │   │   ├── U5.sol
│   │   │   ├── UncheckedCalls.sol
│   │   │   ├── UncheckedReturn.sol
│   │   │   ├── UncheckedSend.sol
│   │   │   ├── UninitializedLocalVariables.sol
│   │   │   ├── UninitializedStateVariable.sol
│   │   │   ├── uniswap
│   │   │   │   ├── UniswapV2Swapper.sol
│   │   │   │   └── UniswapV3Swapper.sol
│   │   │   ├── UnprotectedInitialize.sol
│   │   │   ├── UnsafeERC721Mint.sol
│   │   │   ├── UnusedError.sol
│   │   │   ├── UnusedImport.sol
│   │   │   ├── UnusedStateVariables.sol
│   │   │   ├── UsingSelfdestruct.sol
│   │   │   ├── VoidConstructor.sol
│   │   │   ├── WeakRandomness.sol
│   │   │   ├── WrongOrderOfLayout.sol
│   │   │   ├── YulReturn.sol
│   │   │   └── ZeroAddressCheck.sol
│   │   └── test
│   │       └── Counter.t.sol
│   ├── foundry-nft-f23
│   │   ├── .github
│   │   │   └── workflows
│   │   │       └── test.yml
│   │   ├── .gitignore
│   │   ├── foundry.lock
│   │   ├── foundry.toml
│   │   ├── README.md
│   │   ├── remappings.txt
│   │   └── src
│   │       ├── BasicNft.sol
│   │       ├── F1.sol
│   │       ├── F2.sol
│   │       ├── Initializer.sol
│   │       └── inner-core-modules
│   │           └── ICM.sol
│   ├── foundry-nft-f23-icm
│   │   ├── .github
│   │   │   └── workflows
│   │   │       └── test.yml
│   │   ├── .gitignore
│   │   ├── aderyn.toml
│   │   ├── foundry.toml
│   │   ├── README.md
│   │   ├── remappings.txt
│   │   └── src
│   │       ├── BasicNft.sol
│   │       ├── F1.sol
│   │       ├── F2.sol
│   │       ├── Initializer.sol
│   │       └── inner-core-modules
│   │           └── ICM.sol
│   ├── hardhat-js-playground
│   │   ├── .gitignore
│   │   ├── artifacts
│   │   │   ├── build-info
│   │   │   │   └── cee6fe9a9a2f03f7ff10a27ab2746af6.json
│   │   │   └── contracts
│   │   │       ├── Counter.sol
│   │   │       │   ├── Counter.dbg.json
│   │   │       │   └── Counter.json
│   │   │       ├── ExtendedInheritance.sol
│   │   │       │   ├── ExtendedInheritance.dbg.json
│   │   │       │   └── ExtendedInheritance.json
│   │   │       ├── IContractInheritance.sol
│   │   │       │   ├── IContractInheritance.dbg.json
│   │   │       │   └── IContractInheritance.json
│   │   │       ├── InheritanceBase.sol
│   │   │       │   ├── InheritanceBase.dbg.json
│   │   │       │   └── InheritanceBase.json
│   │   │       ├── KeccakContract.sol
│   │   │       │   ├── KeccakContract.dbg.json
│   │   │       │   └── KeccakContract.json
│   │   │       ├── Lock.sol
│   │   │       │   ├── Lock.dbg.json
│   │   │       │   └── Lock.json
│   │   │       └── StateVariables.sol
│   │   │           ├── StateVariables.dbg.json
│   │   │           └── StateVariables.json
│   │   ├── contracts
│   │   │   ├── Counter.sol
│   │   │   ├── ExtendedInheritance.sol
│   │   │   ├── IContractInheritance.sol
│   │   │   ├── InheritanceBase.sol
│   │   │   ├── KeccakContract.sol
│   │   │   ├── Lock.sol
│   │   │   └── StateVariables.sol
│   │   ├── hardhat.config.js
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── scripts
│   │   │   └── deploy.js
│   │   ├── test
│   │   │   └── Lock.js
│   │   └── yarn.lock
│   ├── no-sol-files
│   │   ├── extra
│   │   │   └── HelloAgain.md
│   │   ├── Hello.txt
│   │   └── Hello.yul
│   └── toml
│       ├── nested_project1
│       │   ├── aderyn.toml
│       │   ├── folder1
│       │   │   └── hardhat.config.ts
│       │   ├── folder2
│       │   │   └── hardhat.config.ts
│       │   └── folder3
│       │       └── file.txt
│       └── nested_project2
│           ├── aderyn.toml
│           ├── folder1
│           │   └── foundry.toml
│           └── folder2
│               └── file1.txt
├── tools
│   └── xtask
│       ├── Cargo.toml
│       └── src
│           ├── blesspr.rs
│           ├── cut_release.rs
│           ├── flags.rs
│           ├── main.rs
│           ├── reportgen.rs
│           └── tomlgen.rs
└── typos.toml
```

# Files

--------------------------------------------------------------------------------
/benchmarks/require-with-string/report/relative_pdf_small.svg:
--------------------------------------------------------------------------------

```
<svg width="450" height="300" viewBox="0 0 450 300" xmlns="http://www.w3.org/2000/svg">
<text x="15" y="130" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000" transform="rotate(270, 15, 130)">
Density (a.u.)
</text>
<text x="255" y="285" dy="-0.5ex" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
Average Time (µs)
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="74,15 74,244 "/>
<text x="65" y="213" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.05
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,213 74,213 "/>
<text x="65" y="182" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.1
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,182 74,182 "/>
<text x="65" y="150" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.15
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,150 74,150 "/>
<text x="65" y="119" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.2
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,119 74,119 "/>
<text x="65" y="87" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.25
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,87 74,87 "/>
<text x="65" y="56" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.3
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,56 74,56 "/>
<text x="65" y="24" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.35
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,24 74,24 "/>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="75,245 434,245 "/>
<text x="123" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
25
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="123,245 123,250 "/>
<text x="194" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
30
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="194,245 194,250 "/>
<text x="266" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
35
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="266,245 266,250 "/>
<text x="337" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
40
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="337,245 337,250 "/>
<text x="409" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
45
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="409,245 409,250 "/>
<polygon opacity="0.5" fill="#E31A1C" points="93,244 94,244 94,244 94,244 95,244 95,244 95,244 96,244 96,244 96,243 97,243 97,243 98,243 98,243 98,243 99,242 99,242 99,242 100,241 100,241 100,241 101,240 101,240 102,239 102,239 102,238 103,238 103,237 103,236 104,236 104,235 104,234 105,233 105,232 106,231 106,230 106,228 107,227 107,226 107,225 108,223 108,222 108,220 109,218 109,217 110,215 110,213 110,211 111,209 111,207 111,205 112,203 112,201 112,198 113,196 113,194 114,191 114,189 114,187 115,184 115,182 115,180 116,177 116,175 116,172 117,170 117,168 118,165 118,163 118,161 119,159 119,156 119,154 120,152 120,150 120,148 121,146 121,144 122,142 122,140 122,139 123,137 123,135 123,134 124,132 124,130 124,129 125,127 125,125 125,124 126,122 126,121 127,119 127,117 127,116 128,114 128,112 128,110 129,109 129,107 129,105 130,103 130,101 131,99 131,96 131,94 132,92 132,89 132,87 133,84 133,82 133,79 134,77 134,74 135,71 135,69 135,66 136,63 136,60 136,57 137,55 137,52 137,49 138,46 138,44 139,41 139,39 139,36 140,34 140,32 140,30 141,27 141,26 141,24 142,22 142,21 143,20 143,18 143,17 144,17 144,16 144,16 145,16 145,15 145,16 146,16 146,17 147,17 147,18 147,19 148,21 148,22 148,24 149,26 149,28 149,30 150,32 150,35 151,38 151,40 151,43 152,46 152,49 152,53 153,56 153,60 153,63 154,67 154,70 155,74 155,78 155,82 156,86 156,90 156,93 157,97 157,101 157,105 158,109 158,113 159,117 159,121 159,124 160,128 160,132 160,135 161,139 161,143 161,146 162,150 162,153 163,156 163,159 163,162 164,166 164,169 164,171 165,174 165,177 165,180 166,182 166,185 167,187 167,189 167,192 168,194 168,196 168,198 169,200 169,201 169,203 170,205 170,206 171,208 171,209 171,211 172,212 172,213 172,214 173,215 173,216 173,217 174,218 174,219 175,220 175,221 175,221 176,222 176,223 176,223 177,224 177,224 177,225 178,225 178,226 179,226 179,226 179,227 180,227 180,228 180,228 181,228 181,229 181,229 182,229 182,229 183,230 183,230 183,230 184,231 184,231 184,231 185,231 185,232 185,232 186,232 186,233 187,233 187,233 187,233 188,234 188,234 188,234 189,234 189,235 189,235 190,235 190,235 191,236 191,236 191,236 192,236 192,236 192,237 193,237 193,237 193,237 194,237 194,237 195,237 195,238 195,238 196,238 196,238 196,238 197,238 197,238 197,238 198,238 198,238 199,238 199,238 199,239 200,239 200,239 200,239 201,239 201,239 201,239 202,239 202,239 203,239 203,239 203,239 204,239 204,239 204,239 205,239 205,239 205,239 206,239 206,239 206,239 207,239 207,239 208,239 208,239 208,239 209,239 209,239 209,239 210,239 210,239 210,239 211,239 211,239 212,239 212,239 212,239 213,239 213,239 213,239 214,239 214,239 214,239 215,239 215,239 216,239 216,239 216,239 217,240 217,240 217,240 218,240 218,240 218,240 219,240 219,240 220,240 220,240 220,240 221,240 221,240 221,241 222,241 222,241 222,241 223,241 223,241 224,241 224,241 224,241 225,242 225,242 225,242 226,242 226,242 226,242 227,242 227,242 228,242 228,242 228,243 229,243 229,243 229,243 230,243 230,243 230,243 231,243 231,243 232,243 232,243 232,243 233,243 233,243 233,243 234,243 234,243 234,243 235,243 235,243 236,243 236,243 236,243 237,243 237,243 237,243 238,243 238,243 238,243 239,242 239,242 240,242 240,242 240,242 241,242 241,242 241,242 242,242 242,242 242,241 243,241 243,241 244,241 244,241 244,241 245,241 245,241 245,241 246,241 246,241 246,240 247,240 247,240 248,240 248,240 248,240 249,240 249,240 249,240 250,240 250,240 250,240 251,240 251,240 252,240 252,240 252,240 253,241 253,241 253,241 254,241 254,241 254,241 255,241 255,241 256,241 256,241 256,241 257,242 257,242 257,242 258,242 258,242 258,242 259,242 259,242 260,242 260,243 260,243 261,243 261,243 261,243 262,243 262,243 262,243 263,243 263,243 264,243 264,244 264,244 265,244 265,244 265,244 266,244 266,244 266,244 267,244 267,244 268,244 268,244 268,244 269,244 269,244 269,244 270,244 270,244 270,244 271,244 271,244 272,244 272,244 272,244 273,244 273,244 273,244 274,244 274,244 274,244 274,244 93,244 "/>
<polygon opacity="0.5" fill="#1F78B4" points="75,244 75,244 76,244 77,244 77,244 78,244 79,244 80,244 80,244 81,244 82,244 82,244 83,244 84,244 85,244 85,244 86,244 87,244 87,244 88,244 89,244 90,244 90,243 91,243 92,243 92,243 93,243 94,243 95,243 95,242 96,242 97,242 98,242 98,242 99,241 100,241 100,241 101,240 102,240 103,240 103,239 104,239 105,238 105,238 106,237 107,237 108,236 108,236 109,235 110,234 110,234 111,233 112,232 113,231 113,231 114,230 115,229 116,228 116,227 117,226 118,225 118,224 119,223 120,222 121,221 121,219 122,218 123,217 123,216 124,214 125,213 126,212 126,211 127,209 128,208 128,207 129,205 130,204 131,203 131,201 132,200 133,198 133,197 134,196 135,194 136,193 136,192 137,191 138,189 139,188 139,187 140,186 141,184 141,183 142,182 143,181 144,180 144,179 145,178 146,177 146,176 147,175 148,174 149,173 149,172 150,172 151,171 151,170 152,169 153,169 154,168 154,168 155,167 156,166 157,166 157,165 158,165 159,165 159,164 160,164 161,164 162,163 162,163 163,163 164,163 164,162 165,162 166,162 167,162 167,162 168,162 169,161 169,161 170,161 171,161 172,161 172,161 173,161 174,161 175,161 175,161 176,161 177,161 177,160 178,160 179,160 180,160 180,160 181,160 182,160 182,160 183,160 184,159 185,159 185,159 186,159 187,159 187,158 188,158 189,158 190,158 190,158 191,157 192,157 192,157 193,157 194,157 195,156 195,156 196,156 197,156 198,156 198,156 199,156 200,156 200,156 201,156 202,156 203,156 203,157 204,157 205,157 205,158 206,158 207,159 208,159 208,160 209,160 210,161 210,162 211,163 212,164 213,165 213,166 214,167 215,168 216,169 216,171 217,172 218,173 218,175 219,176 220,178 221,179 221,181 222,183 223,184 223,186 224,188 225,189 226,191 226,193 227,194 228,196 228,198 229,199 230,201 231,203 231,204 232,206 233,207 233,209 234,210 235,212 236,213 236,215 237,216 238,217 239,219 239,220 240,221 241,222 241,223 242,224 243,226 244,226 244,227 245,228 246,229 246,230 247,231 248,231 249,232 249,233 250,233 251,234 251,235 252,235 253,236 254,236 254,236 255,237 256,237 257,238 257,238 258,238 259,239 259,239 260,239 261,239 262,240 262,240 263,240 264,240 264,240 265,241 266,241 267,241 267,241 268,241 269,241 269,241 270,242 271,242 272,242 272,242 273,242 274,242 275,242 275,242 276,242 277,243 277,243 278,243 279,243 280,243 280,243 281,243 282,243 282,243 283,243 284,243 285,243 285,243 286,243 287,244 287,244 288,244 289,244 290,244 290,244 291,244 292,244 292,244 293,244 294,244 295,244 295,244 296,244 297,244 298,244 298,244 299,244 300,244 300,244 301,244 302,244 303,244 303,244 304,244 305,244 305,244 306,244 307,244 308,244 308,244 309,244 310,244 310,244 311,244 312,244 313,244 313,244 314,244 315,244 316,244 316,244 317,244 318,244 318,244 319,244 320,244 321,243 321,243 322,243 323,243 323,243 324,243 325,243 326,243 326,243 327,243 328,243 328,243 329,243 330,243 331,243 331,243 332,242 333,242 333,242 334,242 335,242 336,242 336,242 337,242 338,242 339,242 339,242 340,242 341,242 341,242 342,242 343,242 344,241 344,241 345,241 346,241 346,241 347,241 348,241 349,241 349,241 350,241 351,241 351,241 352,241 353,241 354,241 354,241 355,241 356,241 357,241 357,241 358,240 359,240 359,240 360,240 361,240 362,240 362,240 363,240 364,240 364,240 365,240 366,240 367,240 367,240 368,240 369,240 369,240 370,240 371,240 372,240 372,240 373,240 374,240 375,240 375,240 376,240 377,240 377,240 378,241 379,241 380,241 380,241 381,241 382,241 382,241 383,241 384,241 385,241 385,241 386,241 387,241 387,241 388,242 389,242 390,242 390,242 391,242 392,242 392,242 393,242 394,242 395,242 395,243 396,243 397,243 398,243 398,243 399,243 400,243 400,243 401,243 402,243 403,243 403,243 404,243 405,244 405,244 406,244 407,244 408,244 408,244 409,244 410,244 410,244 411,244 412,244 413,244 413,244 414,244 415,244 416,244 416,244 417,244 418,244 418,244 419,244 420,244 421,244 421,244 422,244 423,244 423,244 424,244 425,244 426,244 426,244 427,244 428,244 428,244 429,244 430,244 431,244 431,244 432,244 433,244 434,244 434,244 75,244 "/>
<polyline fill="none" opacity="1" stroke="#E31A1C" stroke-width="2" points="145,245 145,15 "/>
<polyline fill="none" opacity="1" stroke="#1F78B4" stroke-width="2" points="187,245 187,159 "/>
</svg>

```

--------------------------------------------------------------------------------
/benchmarks/avoid-abi-encode-packed/report/relative_pdf_small.svg:
--------------------------------------------------------------------------------

```
<svg width="450" height="300" viewBox="0 0 450 300" xmlns="http://www.w3.org/2000/svg">
<text x="15" y="130" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000" transform="rotate(270, 15, 130)">
Density (a.u.)
</text>
<text x="255" y="285" dy="-0.5ex" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
Average Time (µs)
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="74,15 74,244 "/>
<text x="65" y="219" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.1
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,219 74,219 "/>
<text x="65" y="194" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.2
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,194 74,194 "/>
<text x="65" y="169" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.3
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,169 74,169 "/>
<text x="65" y="144" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.4
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,144 74,144 "/>
<text x="65" y="118" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.5
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,118 74,118 "/>
<text x="65" y="93" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.6
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,93 74,93 "/>
<text x="65" y="68" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.7
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,68 74,68 "/>
<text x="65" y="43" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.8
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,43 74,43 "/>
<text x="65" y="18" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.9
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,18 74,18 "/>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="75,245 434,245 "/>
<text x="153" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
15
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="153,245 153,250 "/>
<text x="278" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
20
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="278,245 278,250 "/>
<text x="402" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
25
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="402,245 402,250 "/>
<polygon opacity="0.5" fill="#E31A1C" points="75,244 75,244 76,244 77,244 77,244 78,244 79,244 80,244 80,244 81,244 82,244 82,244 83,244 84,244 85,244 85,244 86,244 87,244 87,244 88,243 89,243 90,243 90,243 91,243 92,243 92,242 93,242 94,242 95,241 95,241 96,241 97,240 98,240 98,239 99,239 100,238 100,237 101,237 102,236 103,235 103,234 104,233 105,232 105,231 106,230 107,228 108,227 108,226 109,224 110,223 110,221 111,219 112,217 113,215 113,213 114,211 115,209 116,207 116,204 117,202 118,200 118,197 119,194 120,192 121,189 121,186 122,183 123,181 123,178 124,175 125,172 126,169 126,166 127,163 128,161 128,158 129,155 130,152 131,150 131,147 132,145 133,142 133,140 134,138 135,136 136,134 136,132 137,130 138,129 139,127 139,126 140,125 141,124 141,123 142,122 143,122 144,121 144,121 145,121 146,121 146,122 147,122 148,123 149,123 149,124 150,125 151,127 151,128 152,129 153,131 154,133 154,135 155,137 156,139 157,141 157,143 158,145 159,148 159,150 160,153 161,155 162,158 162,160 163,163 164,166 164,168 165,171 166,174 167,176 167,179 168,182 169,184 169,187 170,190 171,192 172,194 172,197 173,199 174,201 175,204 175,206 176,208 177,210 177,212 178,214 179,215 180,217 180,219 181,220 182,222 182,223 183,225 184,226 185,227 185,228 186,229 187,230 187,231 188,232 189,233 190,234 190,234 191,235 192,236 192,236 193,237 194,237 195,238 195,238 196,239 197,239 198,239 198,240 199,240 200,240 200,241 201,241 202,241 203,241 203,241 204,242 205,242 205,242 206,242 207,242 208,242 208,242 209,243 210,243 210,243 211,243 212,243 213,243 213,243 214,243 215,243 216,243 216,243 217,243 218,243 218,243 219,243 220,243 221,243 221,243 222,243 223,243 223,243 224,243 225,243 226,243 226,243 227,243 228,243 228,243 229,243 230,243 231,243 231,243 232,243 233,243 233,243 234,243 235,243 236,243 236,243 237,243 238,243 239,243 239,243 240,243 241,243 241,243 242,243 243,243 244,243 244,243 245,243 246,243 246,243 247,243 248,243 249,243 249,243 250,243 251,243 251,243 252,243 253,243 254,243 254,243 255,243 256,243 257,243 257,243 258,244 259,244 259,244 260,244 261,244 262,244 262,244 263,244 264,244 264,244 265,244 266,244 267,244 267,244 268,244 269,244 269,244 270,244 271,244 272,244 272,244 273,244 274,244 275,244 275,244 276,244 277,244 277,244 278,244 279,244 280,244 280,244 281,244 282,244 282,244 283,244 284,244 285,244 285,244 286,244 287,244 287,244 288,244 289,244 290,244 290,244 291,244 292,244 292,244 293,244 294,244 295,244 295,244 296,244 297,244 298,244 298,244 299,244 300,244 300,244 301,244 302,244 303,244 303,244 304,244 305,244 305,244 306,244 307,244 308,244 308,244 309,244 310,244 310,244 311,244 312,244 313,244 313,244 314,244 315,244 316,244 316,244 317,244 318,244 318,244 319,244 320,244 321,244 321,244 322,244 323,244 323,244 324,244 325,244 326,244 326,244 327,244 328,244 328,244 329,244 330,244 331,244 331,244 332,244 333,244 333,243 334,243 335,243 336,243 336,243 337,243 338,243 339,243 339,243 340,243 341,243 341,243 342,243 343,243 344,243 344,243 345,243 346,243 346,243 347,243 348,243 349,243 349,243 350,243 351,243 351,243 352,243 353,243 354,243 354,243 355,243 356,243 357,243 357,243 358,243 359,243 359,243 360,243 361,243 362,243 362,243 363,243 364,243 364,243 365,243 366,243 367,243 367,243 368,243 369,243 369,243 370,243 371,243 372,243 372,243 373,243 374,243 375,243 375,243 376,243 377,243 377,243 378,243 379,243 380,243 380,243 381,243 382,243 382,243 383,243 384,243 385,243 385,243 386,243 387,243 387,243 388,243 389,243 390,243 390,243 391,243 392,243 392,243 393,243 394,243 395,243 395,243 396,243 397,243 398,243 398,243 399,243 400,243 400,243 401,243 402,243 403,243 403,243 404,244 405,244 405,244 406,244 407,244 408,244 408,244 409,244 410,244 410,244 411,244 412,244 413,244 413,244 414,244 415,244 416,244 416,244 417,244 418,244 418,244 419,244 420,244 421,244 421,244 422,244 423,244 423,244 424,244 425,244 426,244 426,244 427,244 428,244 428,244 429,244 430,244 431,244 431,244 432,244 433,244 434,244 434,244 75,244 "/>
<polygon opacity="0.5" fill="#1F78B4" points="98,244 99,244 99,244 100,244 100,244 101,244 101,244 101,244 102,244 102,244 103,244 103,244 103,243 104,243 104,243 105,243 105,243 106,242 106,242 106,242 107,241 107,241 108,240 108,240 108,239 109,238 109,238 110,237 110,236 111,235 111,234 111,232 112,231 112,230 113,228 113,226 113,224 114,222 114,220 115,218 115,215 116,212 116,209 116,206 117,203 117,200 118,196 118,192 118,188 119,184 119,180 120,175 120,171 121,166 121,161 121,156 122,150 122,145 123,140 123,134 123,128 124,123 124,117 125,111 125,105 126,100 126,94 126,88 127,83 127,77 128,72 128,67 128,62 129,57 129,52 130,48 130,43 131,40 131,36 131,32 132,29 132,26 133,24 133,22 133,20 134,18 134,17 135,16 135,16 136,15 136,16 136,16 137,17 137,18 138,20 138,22 138,24 139,27 139,30 140,33 140,36 141,40 141,44 141,48 142,52 142,57 143,62 143,67 143,72 144,77 144,82 145,88 145,93 146,99 146,104 146,110 147,115 147,120 148,126 148,131 148,136 149,142 149,147 150,152 150,156 151,161 151,166 151,170 152,174 152,178 153,182 153,186 153,189 154,193 154,196 155,199 155,201 156,204 156,207 156,209 157,211 157,213 158,215 158,217 158,219 159,220 159,221 160,223 160,224 161,225 161,226 161,227 162,228 162,229 163,229 163,230 163,230 164,231 164,232 165,232 165,232 166,233 166,233 166,233 167,234 167,234 168,234 168,235 168,235 169,235 169,235 170,235 170,236 171,236 171,236 171,236 172,237 172,237 173,237 173,237 173,237 174,238 174,238 175,238 175,238 176,239 176,239 176,239 177,239 177,240 178,240 178,240 178,240 179,241 179,241 180,241 180,241 181,241 181,242 181,242 182,242 182,242 183,242 183,243 183,243 184,243 184,243 185,243 185,243 186,243 186,243 186,244 187,244 187,244 188,244 188,244 188,244 189,244 189,244 190,244 190,244 191,244 191,244 191,244 192,244 192,244 193,244 193,244 193,244 194,244 194,244 195,244 195,244 196,244 196,244 196,244 197,244 197,244 198,244 198,244 198,244 199,244 199,244 200,244 200,244 201,244 201,244 201,244 202,244 202,244 203,244 203,244 203,244 204,244 204,244 205,244 205,244 206,244 206,244 206,244 207,244 207,244 208,244 208,244 208,244 209,244 209,244 210,244 210,244 211,244 211,244 211,244 212,244 212,243 213,243 213,243 213,243 214,243 214,243 215,243 215,243 216,243 216,243 216,243 217,242 217,242 218,242 218,242 218,242 219,242 219,242 220,242 220,242 221,242 221,242 221,242 222,242 222,241 223,241 223,241 223,241 224,241 224,241 225,241 225,241 226,241 226,241 226,241 227,242 227,242 228,242 228,242 228,242 229,242 229,242 230,242 230,242 231,242 231,242 231,242 232,243 232,243 233,243 233,243 233,243 234,243 234,243 235,243 235,243 236,243 236,243 236,244 237,244 237,244 238,244 238,244 238,244 239,244 239,244 240,244 240,244 241,244 241,244 241,244 242,244 242,244 243,244 243,244 243,244 244,244 244,244 245,244 245,244 246,244 246,244 246,244 247,244 247,244 248,244 248,244 248,244 249,244 249,244 250,244 250,244 251,244 251,244 251,244 252,244 252,244 253,244 253,244 253,244 254,244 254,244 255,244 255,244 256,244 256,244 256,244 257,244 257,244 258,244 258,244 258,244 259,244 259,244 260,244 260,244 261,244 261,244 261,244 262,244 262,244 263,244 263,244 263,244 264,244 264,244 265,244 265,244 266,244 266,244 266,244 267,244 267,244 268,244 268,244 268,244 269,244 269,244 270,244 270,244 271,243 271,243 271,243 272,243 272,243 273,243 273,243 273,243 274,243 274,243 275,243 275,242 276,242 276,242 276,242 277,242 277,242 278,242 278,242 278,242 279,242 279,242 280,242 280,242 281,241 281,241 281,241 282,241 282,241 283,241 283,241 283,241 284,241 284,241 285,241 285,242 286,242 286,242 286,242 287,242 287,242 288,242 288,242 288,242 289,242 289,242 290,242 290,243 291,243 291,243 291,243 292,243 292,243 293,243 293,243 293,243 294,243 294,243 295,244 295,244 296,244 296,244 296,244 297,244 297,244 298,244 298,244 298,244 299,244 299,244 300,244 300,244 301,244 301,244 301,244 302,244 302,244 303,244 303,244 303,244 304,244 304,244 305,244 305,244 306,244 306,244 306,244 306,244 98,244 "/>
<polyline fill="none" opacity="1" stroke="#E31A1C" stroke-width="2" points="151,245 151,128 "/>
<polyline fill="none" opacity="1" stroke="#1F78B4" stroke-width="2" points="139,245 139,28 "/>
</svg>

```

--------------------------------------------------------------------------------
/benchmarks/block-timestamp-deadline/report/relative_pdf_small.svg:
--------------------------------------------------------------------------------

```
<svg width="450" height="300" viewBox="0 0 450 300" xmlns="http://www.w3.org/2000/svg">
<text x="15" y="130" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000" transform="rotate(270, 15, 130)">
Density (a.u.)
</text>
<text x="255" y="285" dy="-0.5ex" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
Average Time (µs)
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="74,15 74,244 "/>
<text x="65" y="212" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.005
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,212 74,212 "/>
<text x="65" y="180" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.01
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,180 74,180 "/>
<text x="65" y="148" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.015
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,148 74,148 "/>
<text x="65" y="115" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.02
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,115 74,115 "/>
<text x="65" y="83" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.025
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,83 74,83 "/>
<text x="65" y="51" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.03
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,51 74,51 "/>
<text x="65" y="19" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
0.035
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="69,19 74,19 "/>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="75,245 434,245 "/>
<text x="103" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
250
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="103,245 103,250 "/>
<text x="181" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
300
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="181,245 181,250 "/>
<text x="259" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
350
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="259,245 259,250 "/>
<text x="337" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
400
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="337,245 337,250 "/>
<text x="416" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
450
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="416,245 416,250 "/>
<polygon opacity="0.5" fill="#E31A1C" points="75,244 75,244 76,244 77,244 77,244 78,244 79,244 80,244 80,244 81,244 82,244 82,244 83,244 84,244 85,244 85,244 86,244 87,244 87,244 88,244 89,244 90,244 90,244 91,244 92,244 92,244 93,243 94,243 95,243 95,243 96,243 97,243 98,242 98,242 99,242 100,242 100,242 101,241 102,241 103,241 103,240 104,240 105,240 105,239 106,239 107,238 108,238 108,237 109,237 110,236 110,235 111,235 112,234 113,233 113,232 114,232 115,231 116,230 116,229 117,228 118,227 118,226 119,225 120,223 121,222 121,221 122,220 123,218 123,217 124,216 125,214 126,213 126,211 127,210 128,208 128,206 129,205 130,203 131,202 131,200 132,198 133,197 133,195 134,193 135,191 136,190 136,188 137,186 138,185 139,183 139,181 140,180 141,178 141,177 142,175 143,174 144,172 144,171 145,169 146,168 146,167 147,165 148,164 149,163 149,162 150,161 151,160 151,159 152,158 153,157 154,156 154,155 155,154 156,154 157,153 157,152 158,152 159,151 159,151 160,150 161,150 162,149 162,149 163,149 164,148 164,148 165,148 166,147 167,147 167,147 168,146 169,146 169,146 170,146 171,145 172,145 172,145 173,145 174,144 175,144 175,144 176,144 177,144 177,144 178,143 179,143 180,143 180,143 181,143 182,143 182,143 183,143 184,143 185,143 185,143 186,143 187,143 187,143 188,143 189,143 190,143 190,144 191,144 192,144 192,144 193,145 194,145 195,146 195,146 196,147 197,147 198,148 198,149 199,149 200,150 200,151 201,152 202,152 203,153 203,154 204,155 205,156 205,157 206,158 207,159 208,160 208,161 209,162 210,164 210,165 211,166 212,167 213,168 213,170 214,171 215,172 216,173 216,175 217,176 218,177 218,178 219,180 220,181 221,182 221,184 222,185 223,186 223,188 224,189 225,190 226,191 226,193 227,194 228,195 228,196 229,198 230,199 231,200 231,201 232,202 233,203 233,204 234,206 235,207 236,208 236,209 237,210 238,211 239,212 239,212 240,213 241,214 241,215 242,216 243,217 244,218 244,218 245,219 246,220 246,221 247,221 248,222 249,223 249,223 250,224 251,225 251,225 252,226 253,227 254,227 254,228 255,228 256,229 257,229 257,230 258,230 259,231 259,231 260,232 261,232 262,233 262,233 263,234 264,234 264,235 265,235 266,235 267,236 267,236 268,237 269,237 269,237 270,238 271,238 272,238 272,238 273,239 274,239 275,239 275,239 276,240 277,240 277,240 278,240 279,240 280,240 280,241 281,241 282,241 282,241 283,241 284,241 285,241 285,241 286,241 287,241 287,241 288,241 289,241 290,241 290,241 291,241 292,241 292,241 293,241 294,241 295,241 295,241 296,241 297,241 298,241 298,240 299,240 300,240 300,240 301,240 302,240 303,240 303,240 304,240 305,240 305,240 306,240 307,240 308,240 308,240 309,240 310,240 310,240 311,240 312,240 313,240 313,240 314,240 315,240 316,240 316,241 317,241 318,241 318,241 319,241 320,241 321,241 321,241 322,241 323,241 323,241 324,242 325,242 326,242 326,242 327,242 328,242 328,242 329,242 330,242 331,242 331,243 332,243 333,243 333,243 334,243 335,243 336,243 336,243 337,243 338,243 339,243 339,243 340,243 341,244 341,244 342,244 343,244 344,244 344,244 345,244 346,244 346,244 347,244 348,244 349,244 349,244 350,244 351,244 351,244 352,244 353,244 354,244 354,244 355,244 356,244 357,244 357,244 358,244 359,244 359,244 360,243 361,243 362,243 362,243 363,243 364,243 364,243 365,243 366,243 367,243 367,243 368,243 369,243 369,243 370,243 371,243 372,243 372,243 373,243 374,242 375,242 375,242 376,242 377,242 377,242 378,242 379,242 380,242 380,242 381,242 382,242 382,242 383,242 384,242 385,242 385,242 386,242 387,242 387,242 388,242 389,242 390,242 390,242 391,242 392,242 392,243 393,243 394,243 395,243 395,243 396,243 397,243 398,243 398,243 399,243 400,243 400,243 401,243 402,243 403,243 403,243 404,243 405,244 405,244 406,244 407,244 408,244 408,244 409,244 410,244 410,244 411,244 412,244 413,244 413,244 414,244 415,244 416,244 416,244 417,244 418,244 418,244 419,244 420,244 421,244 421,244 422,244 423,244 423,244 424,244 425,244 426,244 426,244 427,244 428,244 428,244 429,244 430,244 431,244 431,244 432,244 433,244 434,244 434,244 75,244 "/>
<polygon opacity="0.5" fill="#1F78B4" points="94,244 94,244 94,244 95,244 95,244 96,244 96,244 96,244 97,244 97,244 98,244 98,244 99,244 99,244 99,243 100,243 100,243 101,243 101,243 102,243 102,243 102,242 103,242 103,242 104,242 104,241 105,241 105,241 105,240 106,240 106,239 107,239 107,238 107,238 108,237 108,236 109,236 109,235 110,234 110,233 110,233 111,232 111,231 112,230 112,229 113,227 113,226 113,225 114,224 114,222 115,221 115,219 116,218 116,216 116,214 117,212 117,210 118,208 118,206 118,204 119,202 119,200 120,198 120,195 121,193 121,190 121,187 122,185 122,182 123,179 123,176 124,173 124,170 124,167 125,164 125,161 126,157 126,154 127,151 127,147 127,144 128,140 128,136 129,133 129,129 129,125 130,122 130,118 131,114 131,110 132,106 132,102 132,99 133,95 133,91 134,87 134,83 135,79 135,76 135,72 136,68 136,65 137,61 137,58 138,54 138,51 138,48 139,45 139,42 140,39 140,36 140,34 141,31 141,29 142,27 142,25 143,23 143,21 143,20 144,19 144,18 145,17 145,16 146,16 146,16 146,15 147,16 147,16 148,17 148,17 148,18 149,19 149,21 150,22 150,24 151,26 151,28 151,30 152,33 152,35 153,38 153,41 154,44 154,47 154,50 155,53 155,57 156,60 156,63 157,67 157,71 157,74 158,78 158,81 159,85 159,89 159,92 160,96 160,99 161,103 161,106 162,110 162,113 162,116 163,119 163,123 164,126 164,128 165,131 165,134 165,137 166,139 166,142 167,144 167,146 168,148 168,150 168,152 169,154 169,156 170,157 170,159 170,160 171,162 171,163 172,164 172,165 173,166 173,167 173,168 174,169 174,170 175,171 175,172 176,172 176,173 176,174 177,174 177,175 178,176 178,176 179,177 179,177 179,178 180,179 180,179 181,180 181,180 181,181 182,182 182,182 183,183 183,184 184,184 184,185 184,186 185,187 185,188 186,188 186,189 187,190 187,191 187,192 188,193 188,194 189,195 189,196 190,197 190,198 190,199 191,200 191,201 192,202 192,203 192,204 193,205 193,206 194,207 194,209 195,210 195,211 195,212 196,213 196,214 197,215 197,216 198,217 198,218 198,219 199,220 199,221 200,222 200,223 201,224 201,225 201,226 202,227 202,228 203,229 203,229 203,230 204,231 204,232 205,232 205,233 206,234 206,234 206,235 207,236 207,236 208,237 208,237 209,238 209,238 209,239 210,239 210,239 211,240 211,240 212,240 212,241 212,241 213,241 213,242 214,242 214,242 214,242 215,242 215,243 216,243 216,243 217,243 217,243 217,243 218,243 218,244 219,244 219,244 220,244 220,244 220,244 221,244 221,244 222,244 222,244 223,244 223,244 223,244 224,244 224,244 225,244 225,244 225,244 226,244 226,244 227,244 227,244 228,244 228,244 228,244 229,244 229,244 230,244 230,244 231,244 231,244 231,244 232,244 232,244 233,244 233,244 233,244 234,244 234,244 235,244 235,244 236,244 236,244 236,244 237,244 237,244 238,244 238,244 239,244 239,244 239,244 240,244 240,244 241,244 241,244 242,244 242,244 242,244 243,244 243,244 244,244 244,244 244,244 245,244 245,244 246,244 246,244 247,244 247,243 247,243 248,243 248,243 249,243 249,243 250,243 250,243 250,243 251,243 251,242 252,242 252,242 253,242 253,242 253,242 254,242 254,241 255,241 255,241 255,241 256,241 256,241 257,241 257,240 258,240 258,240 258,240 259,240 259,240 260,239 260,239 261,239 261,239 261,239 262,239 262,239 263,239 263,238 264,238 264,238 264,238 265,238 265,238 266,238 266,238 266,238 267,238 267,238 268,238 268,238 269,238 269,238 269,238 270,238 270,238 271,238 271,238 272,238 272,238 272,238 273,238 273,238 274,238 274,238 275,238 275,238 275,238 276,239 276,239 277,239 277,239 277,239 278,239 278,239 279,240 279,240 280,240 280,240 280,240 281,240 281,240 282,241 282,241 283,241 283,241 283,241 284,241 284,242 285,242 285,242 286,242 286,242 286,242 287,242 287,242 288,243 288,243 288,243 289,243 289,243 290,243 290,243 291,243 291,243 291,243 292,244 292,244 293,244 293,244 294,244 294,244 294,244 295,244 295,244 296,244 296,244 297,244 297,244 297,244 298,244 298,244 299,244 299,244 299,244 300,244 300,244 301,244 301,244 302,244 302,244 302,244 303,244 303,244 304,244 304,244 305,244 305,244 94,244 "/>
<polyline fill="none" opacity="1" stroke="#E31A1C" stroke-width="2" points="188,245 188,143 "/>
<polyline fill="none" opacity="1" stroke="#1F78B4" stroke-width="2" points="154,245 154,49 "/>
</svg>

```

--------------------------------------------------------------------------------
/tests/hardhat-js-playground/artifacts/contracts/StateVariables.sol/StateVariables.json:
--------------------------------------------------------------------------------

```json
{
  "_format": "hh-sol-artifact-1",
  "contractName": "StateVariables",
  "sourceName": "contracts/StateVariables.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_privateImmutableNumber",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_internalImmutableNumber",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_publicImmutableNumber",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "ZeroAddressError",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PUBLIC_CONSTANT",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "addr",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "emptyAlteredPublicNumber",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "nonEmptyAlteredPublicNumber",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "publicImmutableNumber",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newAddr",
          "type": "address"
        }
      ],
      "name": "setAddrNoCheck",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newAddr",
          "type": "address"
        }
      ],
      "name": "setAddrNoZeroError",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newAddr",
          "type": "address"
        }
      ],
      "name": "setAddrNoZeroRequire",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_emptyAlteredPrivateNumber",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_emptyAlteredInternalNumber",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_emptyAlteredPublicNumber",
          "type": "uint256"
        }
      ],
      "name": "setEmptyAlteredNumbers",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_nonEmptyAlteredPrivateNumber",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_nonEmptyAlteredInternalNumber",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_nonEmptyAlteredPublicNumber",
          "type": "uint256"
        }
      ],
      "name": "setNonEmptyAlteredNumbers",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "staticNonEmptyPublicNumber",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "staticPublicNumber",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60e060405260016003556002600455600360055560016009556002600a556003600b5534801561002e57600080fd5b5060405161079a38038061079a833981810160405281019061005091906100ab565b82608081815250508160a081815250508060c081815250505050506100fe565b600080fd5b6000819050919050565b61008881610075565b811461009357600080fd5b50565b6000815190506100a58161007f565b92915050565b6000806000606084860312156100c4576100c3610070565b5b60006100d286828701610096565b93505060206100e386828701610096565b92505060406100f486828701610096565b9150509250925092565b60805160a05160c05161067361012760003960006102cf015260005050600050506106736000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063767800de11610071578063767800de14610167578063960e6cf114610185578063a6db5ad4146101a3578063ab344204146101bf578063d55c09ec146101db578063ebf7dd3a146101f9576100b4565b8063041e9204146100b957806321a16478146100d757806338346734146100f357806350e56ca214610111578063531760881461012f5780636e362f311461014b575b600080fd5b6100c1610217565b6040516100ce919061046c565b60405180910390f35b6100f160048036038101906100ec91906104ea565b61021d565b005b6100fb6102c7565b604051610108919061046c565b60405180910390f35b6101196102cd565b604051610126919061046c565b60405180910390f35b610149600480360381019061014491906104ea565b6102f1565b005b61016560048036038101906101609190610543565b6103a4565b005b61016f6103be565b60405161017c91906105a5565b60405180910390f35b61018d6103e4565b60405161019a919061046c565b60405180910390f35b6101bd60048036038101906101b891906104ea565b6103ea565b005b6101d960048036038101906101d49190610543565b61042e565b005b6101e3610448565b6040516101f0919061046c565b60405180910390f35b61020161044d565b60405161020e919061046c565b60405180910390f35b60025481565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610283576040517f3efa09af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60055481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610360576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103579061061d565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b826006819055508160078190555080600881905550505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8260098190555081600a8190555080600b81905550505050565b600381565b60085481565b6000819050919050565b61046681610453565b82525050565b6000602082019050610481600083018461045d565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104b78261048c565b9050919050565b6104c7816104ac565b81146104d257600080fd5b50565b6000813590506104e4816104be565b92915050565b600060208284031215610500576104ff610487565b5b600061050e848285016104d5565b91505092915050565b61052081610453565b811461052b57600080fd5b50565b60008135905061053d81610517565b92915050565b60008060006060848603121561055c5761055b610487565b5b600061056a8682870161052e565b935050602061057b8682870161052e565b925050604061058c8682870161052e565b9150509250925092565b61059f816104ac565b82525050565b60006020820190506105ba6000830184610596565b92915050565b600082825260208201905092915050565b7f416464726573732063616e6e6f74206265207a65726f00000000000000000000600082015250565b60006106076016836105c0565b9150610612826105d1565b602082019050919050565b60006020820190508181036000830152610636816105fa565b905091905056fea26469706673582212204b9ffdaccd040a532abf07e5a8869778497879d1907e59be3730761bd6d17f2e64736f6c63430008140033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063767800de11610071578063767800de14610167578063960e6cf114610185578063a6db5ad4146101a3578063ab344204146101bf578063d55c09ec146101db578063ebf7dd3a146101f9576100b4565b8063041e9204146100b957806321a16478146100d757806338346734146100f357806350e56ca214610111578063531760881461012f5780636e362f311461014b575b600080fd5b6100c1610217565b6040516100ce919061046c565b60405180910390f35b6100f160048036038101906100ec91906104ea565b61021d565b005b6100fb6102c7565b604051610108919061046c565b60405180910390f35b6101196102cd565b604051610126919061046c565b60405180910390f35b610149600480360381019061014491906104ea565b6102f1565b005b61016560048036038101906101609190610543565b6103a4565b005b61016f6103be565b60405161017c91906105a5565b60405180910390f35b61018d6103e4565b60405161019a919061046c565b60405180910390f35b6101bd60048036038101906101b891906104ea565b6103ea565b005b6101d960048036038101906101d49190610543565b61042e565b005b6101e3610448565b6040516101f0919061046c565b60405180910390f35b61020161044d565b60405161020e919061046c565b60405180910390f35b60025481565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610283576040517f3efa09af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60055481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610360576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103579061061d565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b826006819055508160078190555080600881905550505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8260098190555081600a8190555080600b81905550505050565b600381565b60085481565b6000819050919050565b61046681610453565b82525050565b6000602082019050610481600083018461045d565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104b78261048c565b9050919050565b6104c7816104ac565b81146104d257600080fd5b50565b6000813590506104e4816104be565b92915050565b600060208284031215610500576104ff610487565b5b600061050e848285016104d5565b91505092915050565b61052081610453565b811461052b57600080fd5b50565b60008135905061053d81610517565b92915050565b60008060006060848603121561055c5761055b610487565b5b600061056a8682870161052e565b935050602061057b8682870161052e565b925050604061058c8682870161052e565b9150509250925092565b61059f816104ac565b82525050565b60006020820190506105ba6000830184610596565b92915050565b600082825260208201905092915050565b7f416464726573732063616e6e6f74206265207a65726f00000000000000000000600082015250565b60006106076016836105c0565b9150610612826105d1565b602082019050919050565b60006020820190508181036000830152610636816105fa565b905091905056fea26469706673582212204b9ffdaccd040a532abf07e5a8869778497879d1907e59be3730761bd6d17f2e64736f6c63430008140033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}

```

--------------------------------------------------------------------------------
/benchmarks/unspecific-solidity-pragma/report/slope.svg:
--------------------------------------------------------------------------------

```
<svg width="960" height="540" viewBox="0 0 960 540" xmlns="http://www.w3.org/2000/svg">
<text x="480" y="32" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="16.129032258064516" opacity="1" fill="#000000">
unspecific-solidity-pragma:slope
</text>
<text x="27" y="263" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000" transform="rotate(270, 27, 263)">
Density (a.u.)
</text>
<text x="510" y="513" dy="-0.5ex" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
Average time (µs)
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="86,53 86,472 "/>
<text x="77" y="440" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
1
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,440 86,440 "/>
<text x="77" y="384" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
2
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,384 86,384 "/>
<text x="77" y="328" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
3
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,328 86,328 "/>
<text x="77" y="273" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
4
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,273 86,273 "/>
<text x="77" y="217" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
5
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,217 86,217 "/>
<text x="77" y="161" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
6
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,161 86,161 "/>
<text x="77" y="105" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
7
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,105 86,105 "/>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="87,473 932,473 "/>
<text x="198" y="483" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
16.1
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="198,473 198,478 "/>
<text x="360" y="483" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
16.15
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="360,473 360,478 "/>
<text x="521" y="483" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
16.2
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="521,473 521,478 "/>
<text x="683" y="483" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
16.25
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="683,473 683,478 "/>
<text x="845" y="483" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
16.3
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="845,473 845,478 "/>
<polyline fill="none" opacity="1" stroke="#1F78B4" stroke-width="1" points="87,472 88,472 90,471 92,470 93,469 95,469 97,468 98,467 100,466 102,466 103,465 105,464 107,463 109,462 110,462 112,461 114,460 115,459 117,458 119,457 120,456 122,455 124,454 125,453 127,452 129,451 131,450 132,449 134,448 136,447 137,446 139,445 141,444 142,442 144,441 146,440 147,439 149,438 151,437 153,435 154,434 156,433 158,432 159,430 161,429 163,428 164,426 166,425 168,424 169,422 171,421 173,419 175,417 176,416 178,414 180,413 181,411 183,409 185,407 186,406 188,404 190,402 191,400 193,398 195,396 197,394 198,393 200,391 202,389 203,387 205,385 207,383 208,381 210,378 212,376 214,374 215,372 217,370 219,368 220,366 222,364 224,362 225,360 227,358 229,356 230,354 232,352 234,350 236,348 237,346 239,344 241,342 242,339 244,337 246,335 247,333 249,331 251,329 252,327 254,324 256,322 258,320 259,317 261,315 263,313 264,310 266,308 268,305 269,303 271,300 273,298 274,295 276,293 278,290 280,288 281,285 283,283 285,280 286,277 288,275 290,272 291,270 293,267 295,265 296,262 298,259 300,257 302,254 303,252 305,249 307,246 308,244 310,241 312,238 313,235 315,233 317,230 318,227 320,224 322,222 324,219 325,216 327,213 329,210 330,208 332,205 334,202 335,200 337,197 339,194 341,192 342,189 344,187 346,184 347,182 349,180 351,178 352,176 354,174 356,172 357,170 359,168 361,166 363,165 364,163 366,161 368,160 369,158 371,156 373,155 374,153 376,151 378,150 379,148 381,146 383,145 385,143 386,141 388,140 390,138 391,136 393,134 395,133 396,131 398,129 400,127 401,126 403,124 405,122 407,121 408,119 410,117 412,116 413,114 415,113 417,111 418,110 420,109 422,107 423,106 425,105 427,104 429,103 430,102 432,101 434,100 435,99 437,99 439,98 440,97 442,97 444,96 445,96 447,95 449,95 451,95 452,94 454,94 456,94 457,94 459,94 461,94 462,94 464,94 466,94 468,94 469,94 471,94 473,94 474,94 476,94 478,94 479,94 481,94 483,94 484,94 486,94 488,94 490,94 491,94 493,94 495,94 496,94 498,94 500,94 501,94 503,95 505,95 506,95 508,95 510,96 512,96 513,96 515,97 517,97 518,98 520,98 522,99 523,99 525,100 527,101 528,102 530,102 532,103 534,104 535,105 537,106 539,108 540,109 542,110 544,112 545,113 547,115 549,117 550,119 552,120 554,122 556,124 557,126 559,128 561,130 562,132 564,134 566,136 567,138 569,140 571,142 573,144 574,145 576,147 578,149 579,151 581,153 583,154 584,156 586,158 588,159 589,161 591,163 593,165 595,166 596,168 598,170 600,171 601,173 603,175 605,177 606,179 608,180 610,182 611,184 613,186 615,188 617,190 618,193 620,195 622,197 623,199 625,201 627,204 628,206 630,208 632,211 633,213 635,216 637,218 639,220 640,223 642,225 644,228 645,230 647,233 649,235 650,237 652,240 654,242 655,245 657,247 659,249 661,252 662,254 664,256 666,258 667,261 669,263 671,265 672,267 674,270 676,272 677,274 679,276 681,278 683,280 684,282 686,284 688,286 689,288 691,290 693,292 694,294 696,296 698,298 700,299 701,301 703,303 705,305 706,307 708,309 710,311 711,313 713,315 715,317 716,319 718,321 720,323 722,325 723,327 725,329 727,331 728,333 730,335 732,338 733,340 735,342 737,344 738,346 740,348 742,351 744,353 745,355 747,357 749,359 750,361 752,363 754,365 755,367 757,369 759,371 760,373 762,375 764,377 766,378 767,380 769,382 771,384 772,385 774,387 776,388 777,390 779,392 781,393 782,395 784,396 786,397 788,399 789,400 791,402 793,403 794,404 796,406 798,407 799,408 801,409 803,411 804,412 806,413 808,415 810,416 811,417 813,418 815,419 816,421 818,422 820,423 821,424 823,425 825,427 827,428 828,429 830,430 832,431 833,432 835,433 837,434 838,435 840,436 842,437 843,438 845,439 847,440 849,441 850,442 852,443 854,444 855,445 857,445 859,446 860,447 862,448 864,449 865,449 867,450 869,451 871,452 872,452 874,453 876,454 877,455 879,455 881,456 882,457 884,457 886,458 887,459 889,459 891,460 893,460 894,461 896,462 898,462 899,463 901,463 903,464 904,465 906,465 908,466 909,466 911,467 913,467 915,468 916,468 918,469 920,469 921,470 923,470 925,471 926,471 928,472 930,472 932,472 "/>
<polygon opacity="0.25" fill="#1F78B4" points="164,426 166,425 168,424 169,422 171,421 173,419 175,417 176,416 178,414 180,413 181,411 183,409 185,407 186,406 188,404 190,402 191,400 193,398 195,396 197,394 198,393 200,391 202,389 203,387 205,385 207,383 208,381 210,378 212,376 214,374 215,372 217,370 219,368 220,366 222,364 224,362 225,360 227,358 229,356 230,354 232,352 234,350 236,348 237,346 239,344 241,342 242,339 244,337 246,335 247,333 249,331 251,329 252,327 254,324 256,322 258,320 259,317 261,315 263,313 264,310 266,308 268,305 269,303 271,300 273,298 274,295 276,293 278,290 280,288 281,285 283,283 285,280 286,277 288,275 290,272 291,270 293,267 295,265 296,262 298,259 300,257 302,254 303,252 305,249 307,246 308,244 310,241 312,238 313,235 315,233 317,230 318,227 320,224 322,222 324,219 325,216 327,213 329,210 330,208 332,205 334,202 335,200 337,197 339,194 341,192 342,189 344,187 346,184 347,182 349,180 351,178 352,176 354,174 356,172 357,170 359,168 361,166 363,165 364,163 366,161 368,160 369,158 371,156 373,155 374,153 376,151 378,150 379,148 381,146 383,145 385,143 386,141 388,140 390,138 391,136 393,134 395,133 396,131 398,129 400,127 401,126 403,124 405,122 407,121 408,119 410,117 412,116 413,114 415,113 417,111 418,110 420,109 422,107 423,106 425,105 427,104 429,103 430,102 432,101 434,100 435,99 437,99 439,98 440,97 442,97 444,96 445,96 447,95 449,95 451,95 452,94 454,94 456,94 457,94 459,94 461,94 462,94 464,94 466,94 468,94 469,94 471,94 473,94 474,94 476,94 478,94 479,94 481,94 483,94 484,94 486,94 488,94 490,94 491,94 493,94 495,94 496,94 498,94 500,94 501,94 503,95 505,95 506,95 508,95 510,96 512,96 513,96 515,97 517,97 518,98 520,98 522,99 523,99 525,100 527,101 528,102 530,102 532,103 534,104 535,105 537,106 539,108 540,109 542,110 544,112 545,113 547,115 549,117 550,119 552,120 554,122 556,124 557,126 559,128 561,130 562,132 564,134 566,136 567,138 569,140 571,142 573,144 574,145 576,147 578,149 579,151 581,153 583,154 584,156 586,158 588,159 589,161 591,163 593,165 595,166 596,168 598,170 600,171 601,173 603,175 605,177 606,179 608,180 610,182 611,184 613,186 615,188 617,190 618,193 620,195 622,197 623,199 625,201 627,204 628,206 630,208 632,211 633,213 635,216 637,218 639,220 640,223 642,225 644,228 645,230 647,233 649,235 650,237 652,240 654,242 655,245 657,247 659,249 661,252 662,254 664,256 666,258 667,261 669,263 671,265 672,267 674,270 676,272 677,274 679,276 681,278 683,280 684,282 686,284 688,286 689,288 691,290 693,292 694,294 696,296 698,298 700,299 701,301 703,303 705,305 706,307 708,309 710,311 711,313 713,315 715,317 716,319 718,321 720,323 722,325 723,327 725,329 727,331 728,333 730,335 732,338 733,340 735,342 737,344 738,346 740,348 742,351 744,353 745,355 747,357 749,359 750,361 752,363 754,365 755,367 757,369 759,371 760,373 762,375 764,377 766,378 767,380 769,382 771,384 772,385 774,387 776,388 777,390 779,392 781,393 782,395 784,396 786,397 788,399 789,400 791,402 793,403 794,404 796,406 798,407 799,408 801,409 803,411 804,412 806,413 808,415 810,416 811,417 813,418 815,419 816,421 818,422 820,423 821,424 823,425 825,427 827,428 828,429 830,430 832,431 833,432 835,433 837,434 838,435 840,436 842,437 843,438 845,439 847,440 849,441 850,442 852,443 852,473 164,473 "/>
<polyline fill="none" opacity="1" stroke="#1F78B4" stroke-width="3" points="482,473 482,94 "/>
<text x="798" y="68" dy="0.76em" text-anchor="start" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
Bootstrap distribution
</text>
<text x="798" y="83" dy="0.76em" text-anchor="start" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
Confidence interval
</text>
<text x="798" y="98" dy="0.76em" text-anchor="start" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
Point estimate
</text>
<polyline fill="none" opacity="1" stroke="#1F78B4" stroke-width="1" points="768,73 788,73 "/>
<rect x="768" y="83" width="20" height="10" opacity="0.25" fill="#1F78B4" stroke="none"/>
<polyline fill="none" opacity="1" stroke="#1F78B4" stroke-width="1" points="768,103 788,103 "/>
</svg>

```

--------------------------------------------------------------------------------
/benchmarks/unspecific-solidity-pragma/report/typical.svg:
--------------------------------------------------------------------------------

```
<svg width="960" height="540" viewBox="0 0 960 540" xmlns="http://www.w3.org/2000/svg">
<text x="480" y="32" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="16.129032258064516" opacity="1" fill="#000000">
unspecific-solidity-pragma:typical
</text>
<text x="27" y="263" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000" transform="rotate(270, 27, 263)">
Density (a.u.)
</text>
<text x="510" y="513" dy="-0.5ex" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
Average time (µs)
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="86,53 86,472 "/>
<text x="77" y="440" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
1
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,440 86,440 "/>
<text x="77" y="384" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
2
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,384 86,384 "/>
<text x="77" y="328" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
3
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,328 86,328 "/>
<text x="77" y="273" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
4
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,273 86,273 "/>
<text x="77" y="217" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
5
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,217 86,217 "/>
<text x="77" y="161" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
6
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,161 86,161 "/>
<text x="77" y="105" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
7
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="81,105 86,105 "/>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="87,473 932,473 "/>
<text x="198" y="483" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
16.1
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="198,473 198,478 "/>
<text x="360" y="483" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
16.15
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="360,473 360,478 "/>
<text x="521" y="483" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
16.2
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="521,473 521,478 "/>
<text x="683" y="483" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
16.25
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="683,473 683,478 "/>
<text x="845" y="483" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
16.3
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="845,473 845,478 "/>
<polyline fill="none" opacity="1" stroke="#1F78B4" stroke-width="1" points="87,472 88,472 90,471 92,470 93,469 95,469 97,468 98,467 100,466 102,466 103,465 105,464 107,463 109,462 110,462 112,461 114,460 115,459 117,458 119,457 120,456 122,455 124,454 125,453 127,452 129,451 131,450 132,449 134,448 136,447 137,446 139,445 141,444 142,442 144,441 146,440 147,439 149,438 151,437 153,435 154,434 156,433 158,432 159,430 161,429 163,428 164,426 166,425 168,424 169,422 171,421 173,419 175,417 176,416 178,414 180,413 181,411 183,409 185,407 186,406 188,404 190,402 191,400 193,398 195,396 197,394 198,393 200,391 202,389 203,387 205,385 207,383 208,381 210,378 212,376 214,374 215,372 217,370 219,368 220,366 222,364 224,362 225,360 227,358 229,356 230,354 232,352 234,350 236,348 237,346 239,344 241,342 242,339 244,337 246,335 247,333 249,331 251,329 252,327 254,324 256,322 258,320 259,317 261,315 263,313 264,310 266,308 268,305 269,303 271,300 273,298 274,295 276,293 278,290 280,288 281,285 283,283 285,280 286,277 288,275 290,272 291,270 293,267 295,265 296,262 298,259 300,257 302,254 303,252 305,249 307,246 308,244 310,241 312,238 313,235 315,233 317,230 318,227 320,224 322,222 324,219 325,216 327,213 329,210 330,208 332,205 334,202 335,200 337,197 339,194 341,192 342,189 344,187 346,184 347,182 349,180 351,178 352,176 354,174 356,172 357,170 359,168 361,166 363,165 364,163 366,161 368,160 369,158 371,156 373,155 374,153 376,151 378,150 379,148 381,146 383,145 385,143 386,141 388,140 390,138 391,136 393,134 395,133 396,131 398,129 400,127 401,126 403,124 405,122 407,121 408,119 410,117 412,116 413,114 415,113 417,111 418,110 420,109 422,107 423,106 425,105 427,104 429,103 430,102 432,101 434,100 435,99 437,99 439,98 440,97 442,97 444,96 445,96 447,95 449,95 451,95 452,94 454,94 456,94 457,94 459,94 461,94 462,94 464,94 466,94 468,94 469,94 471,94 473,94 474,94 476,94 478,94 479,94 481,94 483,94 484,94 486,94 488,94 490,94 491,94 493,94 495,94 496,94 498,94 500,94 501,94 503,95 505,95 506,95 508,95 510,96 512,96 513,96 515,97 517,97 518,98 520,98 522,99 523,99 525,100 527,101 528,102 530,102 532,103 534,104 535,105 537,106 539,108 540,109 542,110 544,112 545,113 547,115 549,117 550,119 552,120 554,122 556,124 557,126 559,128 561,130 562,132 564,134 566,136 567,138 569,140 571,142 573,144 574,145 576,147 578,149 579,151 581,153 583,154 584,156 586,158 588,159 589,161 591,163 593,165 595,166 596,168 598,170 600,171 601,173 603,175 605,177 606,179 608,180 610,182 611,184 613,186 615,188 617,190 618,193 620,195 622,197 623,199 625,201 627,204 628,206 630,208 632,211 633,213 635,216 637,218 639,220 640,223 642,225 644,228 645,230 647,233 649,235 650,237 652,240 654,242 655,245 657,247 659,249 661,252 662,254 664,256 666,258 667,261 669,263 671,265 672,267 674,270 676,272 677,274 679,276 681,278 683,280 684,282 686,284 688,286 689,288 691,290 693,292 694,294 696,296 698,298 700,299 701,301 703,303 705,305 706,307 708,309 710,311 711,313 713,315 715,317 716,319 718,321 720,323 722,325 723,327 725,329 727,331 728,333 730,335 732,338 733,340 735,342 737,344 738,346 740,348 742,351 744,353 745,355 747,357 749,359 750,361 752,363 754,365 755,367 757,369 759,371 760,373 762,375 764,377 766,378 767,380 769,382 771,384 772,385 774,387 776,388 777,390 779,392 781,393 782,395 784,396 786,397 788,399 789,400 791,402 793,403 794,404 796,406 798,407 799,408 801,409 803,411 804,412 806,413 808,415 810,416 811,417 813,418 815,419 816,421 818,422 820,423 821,424 823,425 825,427 827,428 828,429 830,430 832,431 833,432 835,433 837,434 838,435 840,436 842,437 843,438 845,439 847,440 849,441 850,442 852,443 854,444 855,445 857,445 859,446 860,447 862,448 864,449 865,449 867,450 869,451 871,452 872,452 874,453 876,454 877,455 879,455 881,456 882,457 884,457 886,458 887,459 889,459 891,460 893,460 894,461 896,462 898,462 899,463 901,463 903,464 904,465 906,465 908,466 909,466 911,467 913,467 915,468 916,468 918,469 920,469 921,470 923,470 925,471 926,471 928,472 930,472 932,472 "/>
<polygon opacity="0.25" fill="#1F78B4" points="164,426 166,425 168,424 169,422 171,421 173,419 175,417 176,416 178,414 180,413 181,411 183,409 185,407 186,406 188,404 190,402 191,400 193,398 195,396 197,394 198,393 200,391 202,389 203,387 205,385 207,383 208,381 210,378 212,376 214,374 215,372 217,370 219,368 220,366 222,364 224,362 225,360 227,358 229,356 230,354 232,352 234,350 236,348 237,346 239,344 241,342 242,339 244,337 246,335 247,333 249,331 251,329 252,327 254,324 256,322 258,320 259,317 261,315 263,313 264,310 266,308 268,305 269,303 271,300 273,298 274,295 276,293 278,290 280,288 281,285 283,283 285,280 286,277 288,275 290,272 291,270 293,267 295,265 296,262 298,259 300,257 302,254 303,252 305,249 307,246 308,244 310,241 312,238 313,235 315,233 317,230 318,227 320,224 322,222 324,219 325,216 327,213 329,210 330,208 332,205 334,202 335,200 337,197 339,194 341,192 342,189 344,187 346,184 347,182 349,180 351,178 352,176 354,174 356,172 357,170 359,168 361,166 363,165 364,163 366,161 368,160 369,158 371,156 373,155 374,153 376,151 378,150 379,148 381,146 383,145 385,143 386,141 388,140 390,138 391,136 393,134 395,133 396,131 398,129 400,127 401,126 403,124 405,122 407,121 408,119 410,117 412,116 413,114 415,113 417,111 418,110 420,109 422,107 423,106 425,105 427,104 429,103 430,102 432,101 434,100 435,99 437,99 439,98 440,97 442,97 444,96 445,96 447,95 449,95 451,95 452,94 454,94 456,94 457,94 459,94 461,94 462,94 464,94 466,94 468,94 469,94 471,94 473,94 474,94 476,94 478,94 479,94 481,94 483,94 484,94 486,94 488,94 490,94 491,94 493,94 495,94 496,94 498,94 500,94 501,94 503,95 505,95 506,95 508,95 510,96 512,96 513,96 515,97 517,97 518,98 520,98 522,99 523,99 525,100 527,101 528,102 530,102 532,103 534,104 535,105 537,106 539,108 540,109 542,110 544,112 545,113 547,115 549,117 550,119 552,120 554,122 556,124 557,126 559,128 561,130 562,132 564,134 566,136 567,138 569,140 571,142 573,144 574,145 576,147 578,149 579,151 581,153 583,154 584,156 586,158 588,159 589,161 591,163 593,165 595,166 596,168 598,170 600,171 601,173 603,175 605,177 606,179 608,180 610,182 611,184 613,186 615,188 617,190 618,193 620,195 622,197 623,199 625,201 627,204 628,206 630,208 632,211 633,213 635,216 637,218 639,220 640,223 642,225 644,228 645,230 647,233 649,235 650,237 652,240 654,242 655,245 657,247 659,249 661,252 662,254 664,256 666,258 667,261 669,263 671,265 672,267 674,270 676,272 677,274 679,276 681,278 683,280 684,282 686,284 688,286 689,288 691,290 693,292 694,294 696,296 698,298 700,299 701,301 703,303 705,305 706,307 708,309 710,311 711,313 713,315 715,317 716,319 718,321 720,323 722,325 723,327 725,329 727,331 728,333 730,335 732,338 733,340 735,342 737,344 738,346 740,348 742,351 744,353 745,355 747,357 749,359 750,361 752,363 754,365 755,367 757,369 759,371 760,373 762,375 764,377 766,378 767,380 769,382 771,384 772,385 774,387 776,388 777,390 779,392 781,393 782,395 784,396 786,397 788,399 789,400 791,402 793,403 794,404 796,406 798,407 799,408 801,409 803,411 804,412 806,413 808,415 810,416 811,417 813,418 815,419 816,421 818,422 820,423 821,424 823,425 825,427 827,428 828,429 830,430 832,431 833,432 835,433 837,434 838,435 840,436 842,437 843,438 845,439 847,440 849,441 850,442 852,443 852,473 164,473 "/>
<polyline fill="none" opacity="1" stroke="#1F78B4" stroke-width="3" points="482,473 482,94 "/>
<text x="798" y="68" dy="0.76em" text-anchor="start" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
Bootstrap distribution
</text>
<text x="798" y="83" dy="0.76em" text-anchor="start" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
Confidence interval
</text>
<text x="798" y="98" dy="0.76em" text-anchor="start" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
Point estimate
</text>
<polyline fill="none" opacity="1" stroke="#1F78B4" stroke-width="1" points="768,73 788,73 "/>
<rect x="768" y="83" width="20" height="10" opacity="0.25" fill="#1F78B4" stroke="none"/>
<polyline fill="none" opacity="1" stroke="#1F78B4" stroke-width="1" points="768,103 788,103 "/>
</svg>

```

--------------------------------------------------------------------------------
/aderyn_core/src/ast/impls/node/statements.rs:
--------------------------------------------------------------------------------

```rust
use crate::{ast::*, visitor::ast_visitor::*};
use eyre::Result;
use macros::accept_id;

impl Node for Statement {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        match self {
            Statement::VariableDeclarationStatement(variable_declaration_statement) => {
                variable_declaration_statement.accept(visitor)
            }
            Statement::IfStatement(if_statement) => if_statement.accept(visitor),
            Statement::ForStatement(for_statement) => for_statement.accept(visitor),
            Statement::WhileStatement(while_statement) => while_statement.accept(visitor),
            Statement::EmitStatement(emit_statement) => emit_statement.accept(visitor),
            Statement::TryStatement(try_statement) => try_statement.accept(visitor),
            Statement::UncheckedBlock(unchecked_statement) => unchecked_statement.accept(visitor),
            Statement::Return(return_statement) => return_statement.accept(visitor),
            Statement::RevertStatement(revert_statement) => revert_statement.accept(visitor),
            Statement::ExpressionStatement(expression_statement) => {
                expression_statement.accept(visitor)
            }
            Statement::InlineAssembly(inline_assembly) => inline_assembly.accept(visitor),
            Statement::Block(block) => block.accept(visitor),
            Statement::Break(break_statement) => break_statement.accept(visitor),
            Statement::Continue(continue_statement) => continue_statement.accept(visitor),
            Statement::DoWhileStatement(do_while_statement) => do_while_statement.accept(visitor),
            Statement::PlaceholderStatement(placeholder_statement) => {
                placeholder_statement.accept(visitor)
            }
        }
    }
    fn accept_id(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        visitor.visit_node_id(self.get_node_id())?;
        Ok(())
    }
}

impl Node for ExpressionStatement {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if visitor.visit_expression_statement(self)? {
            self.expression.accept(visitor)?;
            self.accept_metadata(visitor)?;
        }
        visitor.end_visit_expression_statement(self)
    }
    fn accept_metadata(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if let Some(child_id) = self.expression.get_node_id() {
            visitor.visit_immediate_children(self.id, vec![child_id])?;
        }
        Ok(())
    }
    macros::accept_id!();
}

impl Node for VariableDeclarationStatement {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if visitor.visit_variable_declaration_statement(self)? {
            for declaration in &self.declarations {
                if declaration.is_some() {
                    declaration.as_ref().unwrap().accept(visitor)?;
                }
            }
            if self.initial_value.is_some() {
                self.initial_value.as_ref().unwrap().accept(visitor)?;
            }
            self.accept_metadata(visitor)?;
        }
        visitor.end_visit_variable_declaration_statement(self)
    }
    fn accept_metadata(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        let declaration_ids = self.declarations.iter().flatten().map(|x| x.id).collect::<Vec<_>>();
        visitor.visit_immediate_children(self.id, declaration_ids)?;
        if let Some(initial_value) = &self.initial_value
            && let Some(id) = initial_value.get_node_id()
        {
            visitor.visit_immediate_children(self.id, vec![id])?;
        }
        Ok(())
    }
    macros::accept_id!();
}

impl Node for BlockOrStatement {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        match self {
            BlockOrStatement::Block(block) => block.accept(visitor),
            BlockOrStatement::Statement(statement) => statement.accept(visitor),
        }
    }
    fn accept_id(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        visitor.visit_node_id(self.get_node_id())?;
        Ok(())
    }
}

impl Node for IfStatement {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if visitor.visit_if_statement(self)? {
            self.condition.accept(visitor)?;
            self.true_body.accept(visitor)?;
            if self.false_body.is_some() {
                self.false_body.as_ref().unwrap().accept(visitor)?;
            }
        }
        self.accept_metadata(visitor)?;
        visitor.end_visit_if_statement(self)
    }
    fn accept_metadata(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if let Some(cond_id) = self.condition.get_node_id() {
            visitor.visit_immediate_children(self.id, vec![cond_id])?;
        }
        if let Some(true_body_id) = self.true_body.get_node_id() {
            visitor.visit_immediate_children(self.id, vec![true_body_id])?;
        }
        if let Some(false_body) = &self.false_body
            && let Some(false_body_id) = false_body.get_node_id()
        {
            visitor.visit_immediate_children(self.id, vec![false_body_id])?;
        }
        Ok(())
    }
    macros::accept_id!();
}

impl Node for ForStatement {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if visitor.visit_for_statement(self)? {
            if self.initialization_expression.is_some() {
                match self.initialization_expression.as_ref().unwrap().as_ref() {
                    ExpressionOrVariableDeclarationStatement::ExpressionStatement(expr) => {
                        expr.accept(visitor)?;
                    }
                    ExpressionOrVariableDeclarationStatement::VariableDeclarationStatement(
                        vd_stmnt,
                    ) => {
                        vd_stmnt.accept(visitor)?;
                    }
                }
            }
            if self.condition.is_some() {
                self.condition.as_ref().unwrap().accept(visitor)?;
            }
            if self.loop_expression.is_some() {
                self.loop_expression.as_ref().unwrap().accept(visitor)?;
            }
            self.body.accept(visitor)?;
            self.accept_metadata(visitor)?;
        }
        visitor.end_visit_for_statement(self)
    }
    fn accept_metadata(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if let Some(initialization_expr) = &self.initialization_expression
            && let Some(expr_id) = initialization_expr.get_node_id()
        {
            visitor.visit_immediate_children(self.id, vec![expr_id])?;
        }
        if let Some(condition) = &self.condition
            && let Some(cond_id) = condition.get_node_id()
        {
            visitor.visit_immediate_children(self.id, vec![cond_id])?;
        }
        if let Some(loop_expr) = &self.loop_expression {
            visitor.visit_immediate_children(self.id, vec![loop_expr.id])?;
        }
        if let Some(body_id) = self.body.get_node_id() {
            visitor.visit_immediate_children(self.id, vec![body_id])?;
        }
        Ok(())
    }
    macros::accept_id!();
}

impl Node for WhileStatement {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if visitor.visit_while_statement(self)? {
            self.condition.accept(visitor)?;
            self.body.accept(visitor)?;
        }
        self.accept_metadata(visitor)?;
        visitor.end_visit_while_statement(self)
    }

    fn accept_metadata(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if let Some(cond_id) = self.condition.get_node_id() {
            visitor.visit_immediate_children(self.id, vec![cond_id])?;
        }

        if let Some(body_id) = self.body.get_node_id() {
            visitor.visit_immediate_children(self.id, vec![body_id])?;
        }
        Ok(())
    }

    macros::accept_id!();
}

impl Node for DoWhileStatement {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if visitor.visit_do_while_statement(self)? {
            self.condition.accept(visitor)?;
            self.body.accept(visitor)?;
        }
        self.accept_metadata(visitor)?;
        visitor.end_do_visit_while_statement(self)
    }

    fn accept_metadata(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if let Some(cond_id) = self.condition.get_node_id() {
            visitor.visit_immediate_children(self.id, vec![cond_id])?;
        }
        visitor.visit_immediate_children(self.id, vec![self.body.id])?;
        Ok(())
    }

    macros::accept_id!();
}

impl Node for EmitStatement {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if visitor.visit_emit_statement(self)? {
            self.event_call.accept(visitor)?;
        }
        self.accept_metadata(visitor)?;
        visitor.end_visit_emit_statement(self)
    }

    fn accept_metadata(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        visitor.visit_immediate_children(self.id, vec![self.event_call.id])?;
        Ok(())
    }

    accept_id!();
}

impl Node for TryStatement {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if visitor.visit_try_statement(self)? {
            self.external_call.accept(visitor)?;
            list_accept(&self.clauses, visitor)?;
        }
        visitor.end_visit_try_statement(self)
    }
    accept_id!();
}

impl Node for RevertStatement {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if visitor.visit_revert_statement(self)? {
            self.error_call.accept(visitor)?;
        }
        visitor.end_visit_revert_statement(self)
    }
    accept_id!();
}

impl Node for TryCatchClause {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if visitor.visit_try_catch_clause(self)? {
            if self.parameters.is_some() {
                self.parameters.as_ref().unwrap().accept(visitor)?;
            }
            self.block.accept(visitor)?;
        }
        visitor.end_visit_try_catch_clause(self)
    }
    accept_id!();
}

impl Node for Return {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if visitor.visit_return(self)? && self.expression.is_some() {
            self.expression.as_ref().unwrap().accept(visitor)?;
        }
        self.accept_metadata(visitor)?;
        visitor.end_visit_return(self)
    }
    fn accept_metadata(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if let Some(expr) = &self.expression
            && let Some(expr_id) = expr.get_node_id()
        {
            visitor.visit_immediate_children(self.id, vec![expr_id])?;
        }
        Ok(())
    }
    macros::accept_id!();
}

impl Node for InlineAssembly {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        if visitor.visit_inline_assembly(self)? && self.ast.is_some() {
            self.ast.as_ref().unwrap().accept(visitor)?;
        }
        visitor.end_visit_inline_assembly(self)
    }
    macros::accept_id!();
}

impl Node for Break {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        visitor.visit_break_statement(self)?;
        visitor.end_visit_break_statement(self)
    }

    macros::accept_id!();
}

impl Node for Continue {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        visitor.visit_continue_statement(self)?;
        visitor.end_visit_continue_statement(self)
    }

    macros::accept_id!();
}

impl Node for PlaceholderStatement {
    fn accept(&self, visitor: &mut impl ASTConstVisitor) -> Result<()> {
        visitor.visit_placeholder_statement(self)?;
        visitor.end_visit_placeholder_statement(self)
    }

    macros::accept_id!();
}

```
Page 26/94FirstPrevNextLast