#
tokens: 137168/50000 1/1144 files (page 103/103)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 103 of 103. Use http://codebase.md/cyfrin/aderyn?lines=true&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_visitor.rs
│   │   │   ├── impls
│   │   │   │   ├── ctx
│   │   │   │   │   ├── getters.rs
│   │   │   │   │   ├── 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
│   │   │   ├── workspace_visitor.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
│   │   │   │   ├── parent.rs
│   │   │   │   ├── peek_over.rs
│   │   │   │   ├── peek_under.rs
│   │   │   │   ├── peek.rs
│   │   │   │   ├── siblings.rs
│   │   │   │   ├── sort_nodes.rs
│   │   │   │   └── storage_vars.rs
│   │   │   ├── browser.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
│   │   │   ├── 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
│   │   │   │   ├── macros.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_init_order.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
│   ├── 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
│   ├── detector-exclude-report.md
│   ├── detector-include-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
│   └── via-ir-enabled-report.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
│   ├── detector-exclude
│   │   ├── aderyn.toml
│   │   └── InconsistentUints.sol
│   ├── detector-include
│   │   ├── aderyn.toml
│   │   └── InconsistentUints.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
│   └── via-ir-enabled
│       ├── .gitignore
│       ├── foundry.toml
│       └── src
│           └── SemanticOrdering.sol
├── tools
│   └── xtask
│       ├── Cargo.toml
│       └── src
│           ├── blesspr.rs
│           ├── cut_release.rs
│           ├── flags.rs
│           ├── main.rs
│           ├── reportgen.rs
│           └── tomlgen.rs
└── typos.toml
```

# Files

--------------------------------------------------------------------------------
/reports/templegold-report.md:
--------------------------------------------------------------------------------

```markdown
   1 | # Aderyn Analysis Report
   2 | 
   3 | This report was generated by [Aderyn](https://github.com/Cyfrin/aderyn), a static analysis tool built by [Cyfrin](https://cyfrin.io), a blockchain security company. This report is not a substitute for manual audit or security review. It should not be relied upon for any purpose other than to assist in the identification of potential security vulnerabilities.
   4 | # Table of Contents
   5 | 
   6 | - [Summary](#summary)
   7 |   - [Files Summary](#files-summary)
   8 |   - [Files Details](#files-details)
   9 |   - [Issue Summary](#issue-summary)
  10 | - [High Issues](#high-issues)
  11 |   - [H-1: Contract locks Ether without a withdraw function](#h-1-contract-locks-ether-without-a-withdraw-function)
  12 |   - [H-2: Deletion from a nested mapping](#h-2-deletion-from-a-nested-mapping)
  13 |   - [H-3: ETH transferred without address checks](#h-3-eth-transferred-without-address-checks)
  14 |   - [H-4: Reentrancy: State change after external call](#h-4-reentrancy-state-change-after-external-call)
  15 |   - [H-5: Contract Name Reused in Different Files](#h-5-contract-name-reused-in-different-files)
  16 |   - [H-6: Unsafe Casting of integers](#h-6-unsafe-casting-of-integers)
  17 |   - [H-7: Weak Randomness](#h-7-weak-randomness)
  18 | - [Low Issues](#low-issues)
  19 |   - [L-1: Boolean equality is not required](#l-1-boolean-equality-is-not-required)
  20 |   - [L-2: Centralization Risk](#l-2-centralization-risk)
  21 |   - [L-3: Costly operations inside loop](#l-3-costly-operations-inside-loop)
  22 |   - [L-4: Incorrect Order of Division and Multiplication](#l-4-incorrect-order-of-division-and-multiplication)
  23 |   - [L-5: `ecrecover` Signature Malleability](#l-5-ecrecover-signature-malleability)
  24 |   - [L-6: Empty Block](#l-6-empty-block)
  25 |   - [L-7: Empty `require()` / `revert()` Statement](#l-7-empty-require--revert-statement)
  26 |   - [L-8: Inconsistent uint256/uint (or) int256/int types](#l-8-inconsistent-uint256uint-or-int256int-types)
  27 |   - [L-9: Internal Function Used Only Once](#l-9-internal-function-used-only-once)
  28 |   - [L-10: Large Numeric Literal](#l-10-large-numeric-literal)
  29 |   - [L-11: Literal Instead of Constant](#l-11-literal-instead-of-constant)
  30 |   - [L-12: Local Variable Shadows State Variable](#l-12-local-variable-shadows-state-variable)
  31 |   - [L-13: Missing Inheritance](#l-13-missing-inheritance)
  32 |   - [L-14: Modifier Invoked Only Once](#l-14-modifier-invoked-only-once)
  33 |   - [L-15: Redundant Statement](#l-15-redundant-statement)
  34 |   - [L-16: Loop Contains `require`/`revert`](#l-16-loop-contains-requirerevert)
  35 |   - [L-17: State Change Without Event](#l-17-state-change-without-event)
  36 |   - [L-18: Address State Variable Set Without Checks](#l-18-address-state-variable-set-without-checks)
  37 |   - [L-19: State Variable Could Be Immutable](#l-19-state-variable-could-be-immutable)
  38 |   - [L-20: Unchecked Return](#l-20-unchecked-return)
  39 |   - [L-21: Uninitialized Local Variable](#l-21-uninitialized-local-variable)
  40 |   - [L-22: Unsafe ERC20 Operation](#l-22-unsafe-erc20-operation)
  41 |   - [L-23: Unspecific Solidity Pragma](#l-23-unspecific-solidity-pragma)
  42 |   - [L-24: Unused Error](#l-24-unused-error)
  43 |   - [L-25: Unused Import](#l-25-unused-import)
  44 |   - [L-26: Public Function Not Used Internally](#l-26-public-function-not-used-internally)
  45 |   - [L-27: Unused State Variable](#l-27-unused-state-variable)
  46 | 
  47 | 
  48 | # Summary
  49 | 
  50 | ## Files Summary
  51 | 
  52 | | Key | Value |
  53 | | --- | --- |
  54 | | .sol Files | 129 |
  55 | | Total nSLOC | 10226 |
  56 | 
  57 | 
  58 | ## Files Details
  59 | 
  60 | | Filepath | nSLOC |
  61 | | --- | --- |
  62 | | contracts/admin/TempleTeamPayments.sol | 81 |
  63 | | contracts/admin/TempleTeamPaymentsFactory.sol | 113 |
  64 | | contracts/admin/TempleTeamPaymentsV2.sol | 68 |
  65 | | contracts/amm/TempleStableAMMRouter.sol | 174 |
  66 | | contracts/amm/TempleUniswapV2Pair.sol | 146 |
  67 | | contracts/amm/TreasuryIV.sol | 17 |
  68 | | contracts/amo/AuraStaking.sol | 99 |
  69 | | contracts/amo/Ramos.sol | 350 |
  70 | | contracts/amo/helpers/AMOCommon.sol | 17 |
  71 | | contracts/amo/helpers/BalancerPoolHelper.sol | 329 |
  72 | | contracts/amo/test/RamosTestnetAuraStaking.sol | 79 |
  73 | | contracts/amo/test/RamosTestnetTempleTokenVault.sol | 28 |
  74 | | contracts/amo/test/external/IAuraStakingProxy.sol | 6 |
  75 | | contracts/amo/test/external/IAuraToken.sol | 4 |
  76 | | contracts/amo/test/external/IBalancerAuthorizer.sol | 13 |
  77 | | contracts/amo/test/external/IBalancerAuthorizerAdapter.sol | 7 |
  78 | | contracts/amo/test/external/IBalancerHelpers.sol | 27 |
  79 | | contracts/amo/test/external/IBalancerVotingEscrow.sol | 4 |
  80 | | contracts/amo/test/external/IGaugeAdder.sol | 4 |
  81 | | contracts/amo/test/external/IGaugeController.sol | 7 |
  82 | | contracts/amo/test/external/ILiquidityGaugeFactory.sol | 4 |
  83 | | contracts/amo/test/external/IPoolManagerProxy.sol | 4 |
  84 | | contracts/amo/test/external/IPoolManagerV3.sol | 5 |
  85 | | contracts/amo/test/external/IStashRewards.sol | 7 |
  86 | | contracts/amo/test/external/IWeightPool2Tokens.sol | 4 |
  87 | | contracts/amo/test/external/goerli/Goerli_ILiquidityGaugeFactory.sol | 5 |
  88 | | contracts/common/CommonEventsAndErrors.sol | 11 |
  89 | | contracts/common/SafeCast.sol | 10 |
  90 | | contracts/common/TempleMath.sol | 10 |
  91 | | contracts/core/Exposure.sol | 68 |
  92 | | contracts/core/JoiningFee.sol | 30 |
  93 | | contracts/core/MultiOtcOffer.sol | 163 |
  94 | | contracts/core/OpsManager.sol | 110 |
  95 | | contracts/core/OpsManagerLib.sol | 76 |
  96 | | contracts/core/OtcOffer.sol | 91 |
  97 | | contracts/core/Rational.sol | 5 |
  98 | | contracts/core/RebasingERC20.sol | 45 |
  99 | | contracts/core/TempleERC20Token.sol | 23 |
 100 | | contracts/core/TreasuryFarmingRevenue.sol | 44 |
 101 | | contracts/core/Vault.sol | 117 |
 102 | | contracts/core/VaultEarlyWithdraw.sol | 49 |
 103 | | contracts/core/VaultProxy.sol | 84 |
 104 | | contracts/core/VaultedTemple.sol | 26 |
 105 | | contracts/deprecated/Faith.sol | 41 |
 106 | | contracts/deprecated/IExitQueue.sol | 4 |
 107 | | contracts/deprecated/InstantExitQueue.sol | 20 |
 108 | | contracts/deprecated/LockedOGTemple.sol | 61 |
 109 | | contracts/deprecated/OGTemple.sol | 13 |
 110 | | contracts/deprecated/TempleStaking.sol | 98 |
 111 | | contracts/fakes/FakeERC20.sol | 20 |
 112 | | contracts/fakes/FakeERC20CustomDecimals.sol | 26 |
 113 | | contracts/fakes/NoopLiquidator.sol | 13 |
 114 | | contracts/fakes/NoopVaultedTempleLiquidator.sol | 16 |
 115 | | contracts/fakes/UniswapV2Factory.sol | 2 |
 116 | | contracts/fakes/UniswapV2Router02NoEth.sol | 354 |
 117 | | contracts/fakes/governance/DummyTimelockController.sol | 28 |
 118 | | contracts/fakes/templegold/TempleGoldMock.sol | 78 |
 119 | | contracts/fakes/templegold/TempleGoldStakingMock.sol | 436 |
 120 | | contracts/fakes/templegold/TempleTokenMock.sol | 21 |
 121 | | contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol | 45 |
 122 | | contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol | 116 |
 123 | | contracts/governance/ElderElection.sol | 109 |
 124 | | contracts/governance/Templar.sol | 49 |
 125 | | contracts/governance/TemplarMetadata.sol | 23 |
 126 | | contracts/interfaces/amo/IAuraStaking.sol | 40 |
 127 | | contracts/interfaces/amo/IRamos.sol | 106 |
 128 | | contracts/interfaces/amo/helpers/IBalancerPoolHelper.sol | 86 |
 129 | | contracts/interfaces/amo/helpers/IRamosTokenVault.sol | 7 |
 130 | | contracts/interfaces/core/IMultiOtcOffer.sol | 60 |
 131 | | contracts/interfaces/core/ITempleERC20Token.sol | 7 |
 132 | | contracts/interfaces/external/aura/IAuraBaseRewardPool.sol | 15 |
 133 | | contracts/interfaces/external/aura/IAuraBooster.sol | 21 |
 134 | | contracts/interfaces/external/balancer/IBalancerBptToken.sol | 5 |
 135 | | contracts/interfaces/external/balancer/IBalancerHelpers.sol | 16 |
 136 | | contracts/interfaces/external/balancer/IBalancerVault.sol | 66 |
 137 | | contracts/interfaces/external/makerDao/IMakerDaoDaiJoinLike.sol | 7 |
 138 | | contracts/interfaces/external/makerDao/IMakerDaoPotLike.sol | 10 |
 139 | | contracts/interfaces/external/makerDao/IMakerDaoVatLike.sol | 5 |
 140 | | contracts/interfaces/templegold/IAuctionBase.sol | 26 |
 141 | | contracts/interfaces/templegold/IDaiGoldAuction.sol | 33 |
 142 | | contracts/interfaces/templegold/ISpiceAuction.sol | 37 |
 143 | | contracts/interfaces/templegold/ISpiceAuctionFactory.sol | 10 |
 144 | | contracts/interfaces/templegold/ITempleGold.sol | 57 |
 145 | | contracts/interfaces/templegold/ITempleGoldAdmin.sol | 19 |
 146 | | contracts/interfaces/templegold/ITempleGoldStaking.sol | 86 |
 147 | | contracts/interfaces/templegold/ITempleTeleporter.sol | 24 |
 148 | | contracts/interfaces/v2/ITempleDebtToken.sol | 60 |
 149 | | contracts/interfaces/v2/ITreasuryPriceIndexOracle.sol | 20 |
 150 | | contracts/interfaces/v2/ITreasuryReservesVault.sol | 118 |
 151 | | contracts/interfaces/v2/access/ITempleElevatedAccess.sol | 23 |
 152 | | contracts/interfaces/v2/circuitBreaker/ITempleCircuitBreaker.sol | 5 |
 153 | | contracts/interfaces/v2/circuitBreaker/ITempleCircuitBreakerProxy.sol | 27 |
 154 | | contracts/interfaces/v2/interestRate/IInterestRateModel.sol | 6 |
 155 | | contracts/interfaces/v2/safeGuards/IThresholdSafeGuard.sol | 16 |
 156 | | contracts/interfaces/v2/strategies/ITempleBaseStrategy.sol | 8 |
 157 | | contracts/interfaces/v2/strategies/ITempleStrategy.sol | 35 |
 158 | | contracts/interfaces/v2/strategies/ITlcStrategy.sol | 5 |
 159 | | contracts/interfaces/v2/templeLineOfCredit/ITempleLineOfCredit.sol | 54 |
 160 | | contracts/interfaces/v2/templeLineOfCredit/ITlcDataTypes.sol | 38 |
 161 | | contracts/interfaces/v2/templeLineOfCredit/ITlcEventsAndErrors.sol | 19 |
 162 | | contracts/templegold/AuctionBase.sol | 10 |
 163 | | contracts/templegold/DaiGoldAuction.sol | 162 |
 164 | | contracts/templegold/EpochLib.sol | 13 |
 165 | | contracts/templegold/SpiceAuction.sol | 197 |
 166 | | contracts/templegold/SpiceAuctionFactory.sol | 42 |
 167 | | contracts/templegold/TempleGold.sol | 172 |
 168 | | contracts/templegold/TempleGoldAdmin.sol | 50 |
 169 | | contracts/templegold/TempleGoldStaking.sol | 355 |
 170 | | contracts/templegold/TempleTeleporter.sol | 58 |
 171 | | contracts/util/ABDKMath64x64.sol | 478 |
 172 | | contracts/util/ABDKMathQuad.sol | 793 |
 173 | | contracts/v2/TempleDebtToken.sol | 421 |
 174 | | contracts/v2/TreasuryPriceIndexOracle.sol | 58 |
 175 | | contracts/v2/TreasuryReservesVault.sol | 448 |
 176 | | contracts/v2/access/TempleElevatedAccess.sol | 78 |
 177 | | contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol | 96 |
 178 | | contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol | 49 |
 179 | | contracts/v2/interestRate/BaseInterestRateModel.sol | 16 |
 180 | | contracts/v2/interestRate/CompoundedInterest.sol | 15 |
 181 | | contracts/v2/interestRate/LinearWithKinkInterestRateModel.sol | 97 |
 182 | | contracts/v2/safeGuards/SafeForked.sol | 65 |
 183 | | contracts/v2/safeGuards/ThresholdSafeGuard.sol | 124 |
 184 | | contracts/v2/strategies/AbstractStrategy.sol | 106 |
 185 | | contracts/v2/strategies/DsrBaseStrategy.sol | 163 |
 186 | | contracts/v2/strategies/GnosisStrategy.sol | 104 |
 187 | | contracts/v2/strategies/RamosStrategy.sol | 156 |
 188 | | contracts/v2/strategies/TempleTokenBaseStrategy.sol | 62 |
 189 | | contracts/v2/strategies/TlcStrategy.sol | 56 |
 190 | | contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol | 468 |
 191 | | **Total** | **10226** |
 192 | 
 193 | 
 194 | ## Issue Summary
 195 | 
 196 | | Category | No. of Issues |
 197 | | --- | --- |
 198 | | High | 7 |
 199 | | Low | 27 |
 200 | 
 201 | 
 202 | # High Issues
 203 | 
 204 | ## H-1: Contract locks Ether without a withdraw function
 205 | 
 206 | It appears that the contract includes a payable function to accept Ether but lacks a corresponding function to withdraw it, which leads to the Ether being locked in the contract. To resolve this issue, please implement a public or external function that allows for the withdrawal of Ether from the contract.
 207 | 
 208 | <details><summary>1 Found Instances</summary>
 209 | 
 210 | 
 211 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 21](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L21)
 212 | 
 213 | 	```solidity
 214 | 	contract UniswapV2Router02NoEth is IUniswapV2Router02 {
 215 | 	```
 216 | 
 217 | </details>
 218 | 
 219 | 
 220 | 
 221 | ## H-2: Deletion from a nested mapping
 222 | 
 223 | A deletion in a structure containing a mapping will not delete the mapping. The remaining data may be used to compromise the contract.
 224 | 
 225 | <details><summary>1 Found Instances</summary>
 226 | 
 227 | 
 228 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 317](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L317)
 229 | 
 230 | 	```solidity
 231 | 	        delete strategies[strategy];
 232 | 	```
 233 | 
 234 | </details>
 235 | 
 236 | 
 237 | 
 238 | ## H-3: ETH transferred without address checks
 239 | 
 240 | Consider introducing checks for `msg.sender` to ensure the recipient of the money is as intended.
 241 | 
 242 | <details><summary>29 Found Instances</summary>
 243 | 
 244 | 
 245 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 74](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L74)
 246 | 
 247 | 	```solidity
 248 | 	    function claim() external addressExists(msg.sender) {
 249 | 	```
 250 | 
 251 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 74](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L74)
 252 | 
 253 | 	```solidity
 254 | 	    function claim(uint256 _claimAmount) external {
 255 | 	```
 256 | 
 257 | - Found in contracts/amo/test/RamosTestnetTempleTokenVault.sol [Line: 27](../tests/2024-07-templegold/protocol/contracts/amo/test/RamosTestnetTempleTokenVault.sol#L27)
 258 | 
 259 | 	```solidity
 260 | 	    function borrowQuoteToken(uint256 amount, address recipient) external {
 261 | 	```
 262 | 
 263 | - Found in contracts/amo/test/RamosTestnetTempleTokenVault.sol [Line: 31](../tests/2024-07-templegold/protocol/contracts/amo/test/RamosTestnetTempleTokenVault.sol#L31)
 264 | 
 265 | 	```solidity
 266 | 	    function repayProtocolToken(uint256 amount) external {
 267 | 	```
 268 | 
 269 | - Found in contracts/amo/test/RamosTestnetTempleTokenVault.sol [Line: 36](../tests/2024-07-templegold/protocol/contracts/amo/test/RamosTestnetTempleTokenVault.sol#L36)
 270 | 
 271 | 	```solidity
 272 | 	    function repayQuoteToken(uint256 amount) external {
 273 | 	```
 274 | 
 275 | - Found in contracts/core/MultiOtcOffer.sol [Line: 156](../tests/2024-07-templegold/protocol/contracts/core/MultiOtcOffer.sol#L156)
 276 | 
 277 | 	```solidity
 278 | 	    function swap(bytes32 marketId, uint256 sellTokenAmount) external override whenNotPaused returns (uint256) {
 279 | 	```
 280 | 
 281 | - Found in contracts/core/MultiOtcOffer.sol [Line: 168](../tests/2024-07-templegold/protocol/contracts/core/MultiOtcOffer.sol#L168)
 282 | 
 283 | 	```solidity
 284 | 	    function swap(
 285 | 	```
 286 | 
 287 | - Found in contracts/core/OtcOffer.sol [Line: 131](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L131)
 288 | 
 289 | 	```solidity
 290 | 	    function swap(uint256 sellTokenAmount) external whenNotPaused returns (uint256 buyTokenAmount) {
 291 | 	```
 292 | 
 293 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 57](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L57)
 294 | 
 295 | 	```solidity
 296 | 	    function withdraw(address _vault, uint256 _templeAmount) external whenNotPaused {
 297 | 	```
 298 | 
 299 | - Found in contracts/core/VaultProxy.sol [Line: 58](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L58)
 300 | 
 301 | 	```solidity
 302 | 	    function depositTempleWithFaith(uint256 _amountTemple, uint112 _amountFaith, Vault vault) public {
 303 | 	```
 304 | 
 305 | - Found in contracts/core/VaultProxy.sol [Line: 71](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L71)
 306 | 
 307 | 	```solidity
 308 | 	    function unstakeAndDepositTempleWithFaith(uint256 _amountOGT, uint112 _amountFaith, Vault vault) external {
 309 | 	```
 310 | 
 311 | - Found in contracts/core/VaultProxy.sol [Line: 83](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L83)
 312 | 
 313 | 	```solidity
 314 | 	    function unstakeAndDepositIntoVault(uint256 _amountOGT, Vault vault) external {
 315 | 	```
 316 | 
 317 | - Found in contracts/core/VaultProxy.sol [Line: 109](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L109)
 318 | 
 319 | 	```solidity
 320 | 	    function depositTempleFor(uint256 _amount, Vault vault) public {
 321 | 	```
 322 | 
 323 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 35](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L35)
 324 | 
 325 | 	```solidity
 326 | 	  function lockFor(
 327 | 	```
 328 | 
 329 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 55](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L55)
 330 | 
 331 | 	```solidity
 332 | 	  function lock(uint256 _amountOGTemple, uint256 _lockedUntilTimestamp)
 333 | 	```
 334 | 
 335 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 62](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L62)
 336 | 
 337 | 	```solidity
 338 | 	  function withdrawFor(address _staker, uint256 _idx) public {
 339 | 	```
 340 | 
 341 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 83](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L83)
 342 | 
 343 | 	```solidity
 344 | 	  function withdraw(uint256 _idx) external {
 345 | 	```
 346 | 
 347 | - Found in contracts/deprecated/TempleStaking.sol [Line: 123](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L123)
 348 | 
 349 | 	```solidity
 350 | 	    function stakeFor(address _staker, uint256 _amountTemple) public returns(uint256 amountOgTemple) {
 351 | 	```
 352 | 
 353 | - Found in contracts/deprecated/TempleStaking.sol [Line: 139](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L139)
 354 | 
 355 | 	```solidity
 356 | 	    function stake(uint256 _amountTemple) external returns(uint256 amountOgTemple) {
 357 | 	```
 358 | 
 359 | - Found in contracts/deprecated/TempleStaking.sol [Line: 144](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L144)
 360 | 
 361 | 	```solidity
 362 | 	    function unstake(uint256 _amountOgTemple) external {      
 363 | 	```
 364 | 
 365 | - Found in contracts/templegold/DaiGoldAuction.sol [Line: 132](../tests/2024-07-templegold/protocol/contracts/templegold/DaiGoldAuction.sol#L132)
 366 | 
 367 | 	```solidity
 368 | 	    function bid(uint256 amount) external virtual override onlyWhenLive {
 369 | 	```
 370 | 
 371 | - Found in contracts/templegold/DaiGoldAuction.sol [Line: 150](../tests/2024-07-templegold/protocol/contracts/templegold/DaiGoldAuction.sol#L150)
 372 | 
 373 | 	```solidity
 374 | 	    function claim(uint256 epochId) external virtual override {
 375 | 	```
 376 | 
 377 | - Found in contracts/templegold/SpiceAuction.sol [Line: 183](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L183)
 378 | 
 379 | 	```solidity
 380 | 	    function bid(uint256 amount) external virtual override {
 381 | 	```
 382 | 
 383 | - Found in contracts/templegold/SpiceAuction.sol [Line: 209](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L209)
 384 | 
 385 | 	```solidity
 386 | 	    function claim(uint256 epochId) external virtual override {
 387 | 	```
 388 | 
 389 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 145](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L145)
 390 | 
 391 | 	```solidity
 392 | 	    function addCollateral(uint128 collateralAmount, address onBehalfOf) external override notInRescueMode {
 393 | 	```
 394 | 
 395 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 166](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166)
 396 | 
 397 | 	```solidity
 398 | 	    function removeCollateral(uint128 amount, address recipient) external override notInRescueMode {
 399 | 	```
 400 | 
 401 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 253](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L253)
 402 | 
 403 | 	```solidity
 404 | 	    function repay(uint128 repayAmount, address onBehalfOf) external override notInRescueMode {
 405 | 	```
 406 | 
 407 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 287](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L287)
 408 | 
 409 | 	```solidity
 410 | 	    function repayAll(address onBehalfOf) external override notInRescueMode {
 411 | 	```
 412 | 
 413 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 318](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L318)
 414 | 
 415 | 	```solidity
 416 | 	    function batchLiquidate(
 417 | 	```
 418 | 
 419 | </details>
 420 | 
 421 | 
 422 | 
 423 | ## H-4: Reentrancy: State change after external call
 424 | 
 425 | Changing state after an external call can lead to re-entrancy attacks.Use the checks-effects-interactions pattern to avoid this issue.
 426 | 
 427 | <details><summary>23 Found Instances</summary>
 428 | 
 429 | 
 430 | - Found in contracts/amo/Ramos.sol [Line: 195](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L195)
 431 | 
 432 | 	State is changed at: `tokenVault = IRamosTokenVault(vault)`
 433 | 	```solidity
 434 | 	            protocolToken.approve(previousVault, 0);
 435 | 	```
 436 | 
 437 | - Found in contracts/amo/Ramos.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L196)
 438 | 
 439 | 	State is changed at: `tokenVault = IRamosTokenVault(vault)`
 440 | 	```solidity
 441 | 	            quoteToken.approve(previousVault, 0);
 442 | 	```
 443 | 
 444 | - Found in contracts/core/MultiOtcOffer.sol [Line: 68](../tests/2024-07-templegold/protocol/contracts/core/MultiOtcOffer.sol#L68)
 445 | 
 446 | 	State is changed at: `marketInfo.scalar = 10 ** scaleDecimals`
 447 | 	```solidity
 448 | 	        uint256 scaleDecimals = marketInfo.offerPricingToken == OfferPricingToken.UserBuyToken
 449 | 	```
 450 | 
 451 | - Found in contracts/core/OpsManager.sol [Line: 36](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L36)
 452 | 
 453 | 	State is changed at: `vaultedTemple = new VaultedTemple(_templeToken, address(templeExposure))`
 454 | 	```solidity
 455 | 	        templeExposure.setMinterState(address(this), true);
 456 | 	```
 457 | 
 458 | - Found in contracts/core/OtcOffer.sol [Line: 91](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L91)
 459 | 
 460 | 	State is changed at: `scalar = 10 ** scaleDecimals`
 461 | 	```solidity
 462 | 	        uint256 scaleDecimals = offerPricingToken == OfferPricingToken.UserBuyToken
 463 | 	```
 464 | 
 465 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 158](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L158)
 466 | 
 467 | 	State is changed at: `_accountLastStakeIndex[msg.sender] = ++_lastIndex`
 468 | 	```solidity
 469 | 	        uint256 amount = previousStaking.migrateWithdraw(msg.sender, index);
 470 | 	```
 471 | 
 472 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L52)
 473 | 
 474 | 	State is changed at: `daiSavingsRate = _newRate`
 475 | 	```solidity
 476 | 	        _checkpointDaiBalance(daiToken.balanceOf(address(this)));
 477 | 	```
 478 | 
 479 | - Found in contracts/governance/ElderElection.sol [Line: 74](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L74)
 480 | 
 481 | 	State is changed at: `candidates[discordId] = true`, `numCandidates += 1`
 482 | 	```solidity
 483 | 	        templars.checkExists(discordId);
 484 | 	```
 485 | 
 486 | - Found in contracts/governance/ElderElection.sol [Line: 87](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L87)
 487 | 
 488 | 	State is changed at: `candidates[discordId] = false`, `numCandidates -= 1`
 489 | 	```solidity
 490 | 	        templars.checkExists(discordId);
 491 | 	```
 492 | 
 493 | - Found in contracts/governance/TemplarMetadata.sol [Line: 32](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L32)
 494 | 
 495 | 	State is changed at: `templeRole[discordId] = _templeRole`
 496 | 	```solidity
 497 | 	        templars.checkExists(discordId);
 498 | 	```
 499 | 
 500 | - Found in contracts/templegold/SpiceAuction.sol [Line: 159](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L159)
 501 | 
 502 | 	State is changed at: `uint128 startTime = info.startTime = uint128(block.timestamp) + config.startCooldown`, `uint128 endTime = info.endTime = startTime + config.duration`, `info.totalAuctionTokenAmount = epochAuctionTokenAmount`, `_totalAuctionTokenAllocation[auctionToken] = totalAuctionTokenAllocation + epochAuctionTokenAmount`
 503 | 	```solidity
 504 | 	        uint256 balance = IERC20(auctionToken).balanceOf(address(this));
 505 | 	```
 506 | 
 507 | - Found in contracts/templegold/SpiceAuction.sol [Line: 194](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L194)
 508 | 
 509 | 	State is changed at: `info.totalBidTokenAmount += amount`
 510 | 	```solidity
 511 | 	        uint256 _bidTokenAmountBefore = IERC20(bidToken).balanceOf(_recipient);
 512 | 	```
 513 | 
 514 | - Found in contracts/templegold/SpiceAuction.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L196)
 515 | 
 516 | 	State is changed at: `info.totalBidTokenAmount += amount`
 517 | 	```solidity
 518 | 	        uint256 _bidTokenAmountAfter = IERC20(bidToken).balanceOf(_recipient);
 519 | 	```
 520 | 
 521 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 148](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L148)
 522 | 
 523 | 	State is changed at: `tpiOracle = _tpiOracle`
 524 | 	```solidity
 525 | 	        if (_tpiOracle.treasuryPriceIndex() == 0) revert CommonEventsAndErrors.InvalidParam();
 526 | 	```
 527 | 
 528 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 296](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L296)
 529 | 
 530 | 	State is changed at: `delete strategies[strategy]`, `delete _strategyConfig.debtCeiling[_token]`, `delete _strategyConfig.enabledBorrowTokens[_token]`, `delete credits[_token]`
 531 | 	```solidity
 532 | 	            _outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy);
 533 | 	```
 534 | 
 535 | - Found in contracts/v2/strategies/DsrBaseStrategy.sol [Line: 55](../tests/2024-07-templegold/protocol/contracts/v2/strategies/DsrBaseStrategy.sol#L55)
 536 | 
 537 | 	State is changed at: `pot = IMakerDaoPotLike(_pot)`, `daiToken = IERC20(_daiToken)`
 538 | 	```solidity
 539 | 	        IMakerDaoVatLike vat = IMakerDaoVatLike(daiJoin.vat());
 540 | 	```
 541 | 
 542 | - Found in contracts/v2/strategies/DsrBaseStrategy.sol [Line: 57](../tests/2024-07-templegold/protocol/contracts/v2/strategies/DsrBaseStrategy.sol#L57)
 543 | 
 544 | 	State is changed at: `daiToken = IERC20(_daiToken)`
 545 | 	```solidity
 546 | 	        vat.hope(address(daiJoin));
 547 | 	```
 548 | 
 549 | - Found in contracts/v2/strategies/DsrBaseStrategy.sol [Line: 58](../tests/2024-07-templegold/protocol/contracts/v2/strategies/DsrBaseStrategy.sol#L58)
 550 | 
 551 | 	State is changed at: `daiToken = IERC20(_daiToken)`
 552 | 	```solidity
 553 | 	        vat.hope(address(pot));
 554 | 	```
 555 | 
 556 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 173](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L173)
 557 | 
 558 | 	State is changed at: `_accountData.collateral = _collateral - amount`, `totalCollateral -= amount`
 559 | 	```solidity
 560 | 	        circuitBreakerProxy.preCheck(
 561 | 	```
 562 | 
 563 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 213](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L213)
 564 | 
 565 | 	State is changed at: `_accountData.debtCheckpoint = _totalDebt`, `_accountData.interestAccumulator = _cache.interestAccumulator`, `debtTokenData.totalDebt = _cache.totalDebt = _cache.totalDebt + amount`
 566 | 	```solidity
 567 | 	        circuitBreakerProxy.preCheck(
 568 | 	```
 569 | 
 570 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 351](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L351)
 571 | 
 572 | 	State is changed at: `totalCollateral -= totalCollateralClaimed`
 573 | 	```solidity
 574 | 	            treasuryReservesVault.repay(templeToken, totalCollateralClaimed, address(tlcStrategy));
 575 | 	```
 576 | 
 577 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 394](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)
 578 | 
 579 | 	State is changed at: `treasuryReservesVault = ITreasuryReservesVault(_trv)`
 580 | 	```solidity
 581 | 	            daiToken.approve(previousTrv, 0);
 582 | 	```
 583 | 
 584 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 397](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L397)
 585 | 
 586 | 	State is changed at: `treasuryReservesVault = ITreasuryReservesVault(_trv)`
 587 | 	```solidity
 588 | 	        address _trv = address(tlcStrategy.treasuryReservesVault());
 589 | 	```
 590 | 
 591 | </details>
 592 | 
 593 | 
 594 | 
 595 | ## H-5: Contract Name Reused in Different Files
 596 | 
 597 | When compiling contracts with certain development frameworks (for example: Truffle), having contracts with the same name across different files can lead to one being overwritten.
 598 | 
 599 | <details><summary>4 Found Instances</summary>
 600 | 
 601 | 
 602 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 13](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L13)
 603 | 
 604 | 	```solidity
 605 | 	interface IWeightPool2Tokens {
 606 | 	```
 607 | 
 608 | - Found in contracts/amo/test/external/IBalancerHelpers.sol [Line: 5](../tests/2024-07-templegold/protocol/contracts/amo/test/external/IBalancerHelpers.sol#L5)
 609 | 
 610 | 	```solidity
 611 | 	interface IBalancerHelpers {
 612 | 	```
 613 | 
 614 | - Found in contracts/amo/test/external/IWeightPool2Tokens.sol [Line: 5](../tests/2024-07-templegold/protocol/contracts/amo/test/external/IWeightPool2Tokens.sol#L5)
 615 | 
 616 | 	```solidity
 617 | 	interface IWeightPool2Tokens {
 618 | 	```
 619 | 
 620 | - Found in contracts/interfaces/external/balancer/IBalancerHelpers.sol [Line: 7](../tests/2024-07-templegold/protocol/contracts/interfaces/external/balancer/IBalancerHelpers.sol#L7)
 621 | 
 622 | 	```solidity
 623 | 	interface IBalancerHelpers {
 624 | 	```
 625 | 
 626 | </details>
 627 | 
 628 | 
 629 | 
 630 | ## H-6: Unsafe Casting of integers
 631 | 
 632 | Downcasting int/uints in Solidity can be unsafe due to the potential for data loss and unintended behavior.When downcasting a larger integer type to a smaller one (e.g., uint256 to uint128), the value may exceed the range of the target type,leading to truncation and loss of significant digits. Use OpenZeppelin's SafeCast library to safely downcast integers.
 633 | 
 634 | <details><summary>2 Found Instances</summary>
 635 | 
 636 | 
 637 | - Found in contracts/util/ABDKMath64x64.sol [Line: 483](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L483)
 638 | 
 639 | 	```solidity
 640 | 	      return int128 (result);
 641 | 	```
 642 | 
 643 | - Found in contracts/v2/interestRate/LinearWithKinkInterestRateModel.sol [Line: 140](../tests/2024-07-templegold/protocol/contracts/v2/interestRate/LinearWithKinkInterestRateModel.sol#L140)
 644 | 
 645 | 	```solidity
 646 | 	        return uint96(interestRate);
 647 | 	```
 648 | 
 649 | </details>
 650 | 
 651 | 
 652 | 
 653 | ## H-7: Weak Randomness
 654 | 
 655 | The use of keccak256 hash functions on predictable values like block.timestamp, block.number, or similar data, including modulo operations on these values, should be avoided for generating randomness, as they are easily predictable and manipulable. The `PREVRANDAO` opcode also should not be used as a source of randomness. Instead, utilize Chainlink VRF for cryptographically secure and provably random values to ensure protocol integrity.
 656 | 
 657 | <details><summary>1 Found Instances</summary>
 658 | 
 659 | 
 660 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 82](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L82)
 661 | 
 662 | 	```solidity
 663 | 	        uint32 blockTimestamp = uint32(block.timestamp % 2**32);
 664 | 	```
 665 | 
 666 | </details>
 667 | 
 668 | 
 669 | 
 670 | # Low Issues
 671 | 
 672 | ## L-1: Boolean equality is not required
 673 | 
 674 | If `x` is a boolean, use `if(x)` and `if(!x)` instead of `if(x == true)` or `if(x == false)`.
 675 | 
 676 | <details><summary>2 Found Instances</summary>
 677 | 
 678 | 
 679 | - Found in contracts/deprecated/Faith.sol [Line: 32](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L32)
 680 | 
 681 | 	```solidity
 682 | 	        require(canManageFaith[msg.sender] == true, "Faith: caller cannot manage faith");
 683 | 	```
 684 | 
 685 | - Found in contracts/deprecated/Faith.sol [Line: 40](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L40)
 686 | 
 687 | 	```solidity
 688 | 	        require(canManageFaith[msg.sender] == true, "Faith: caller cannot manage faith");
 689 | 	```
 690 | 
 691 | </details>
 692 | 
 693 | 
 694 | 
 695 | ## L-2: Centralization Risk
 696 | 
 697 | Contracts have owners with privileged rights to perform admin tasks and need to be trusted to not perform malicious updates or drain funds.
 698 | 
 699 | <details><summary>91 Found Instances</summary>
 700 | 
 701 | 
 702 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 8](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L8)
 703 | 
 704 | 	```solidity
 705 | 	contract TempleTeamPayments is Ownable {
 706 | 	```
 707 | 
 708 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 32](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L32)
 709 | 
 710 | 	```solidity
 711 | 	    ) external onlyOwner {
 712 | 	```
 713 | 
 714 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 44](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L44)
 715 | 
 716 | 	```solidity
 717 | 	    function setAllocation(address _address, uint256 _amount) external onlyOwner {
 718 | 	```
 719 | 
 720 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 51](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L51)
 721 | 
 722 | 	```solidity
 723 | 	        onlyOwner
 724 | 	```
 725 | 
 726 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 83](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L83)
 727 | 
 728 | 	```solidity
 729 | 	    function adhocPayment(address _to, uint256 _amount) external onlyOwner {
 730 | 	```
 731 | 
 732 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 92](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L92)
 733 | 
 734 | 	```solidity
 735 | 	        onlyOwner
 736 | 	```
 737 | 
 738 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 9](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L9)
 739 | 
 740 | 	```solidity
 741 | 	contract TempleTeamPaymentsFactory is Ownable {
 742 | 	```
 743 | 
 744 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 58](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L58)
 745 | 
 746 | 	```solidity
 747 | 	    function withdrawToken(IERC20 _token, uint256 _amount) external onlyOwner {
 748 | 	```
 749 | 
 750 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 66](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L66)
 751 | 
 752 | 	```solidity
 753 | 	    ) external onlyOwner {
 754 | 	```
 755 | 
 756 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 84](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L84)
 757 | 
 758 | 	```solidity
 759 | 	    ) external onlyOwner returns (TempleTeamPaymentsV2) {
 760 | 	```
 761 | 
 762 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 123](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L123)
 763 | 
 764 | 	```solidity
 765 | 	    ) external onlyOwner {
 766 | 	```
 767 | 
 768 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 39](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L39)
 769 | 
 770 | 	```solidity
 771 | 	    ) external onlyOwner {
 772 | 	```
 773 | 
 774 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 46](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L46)
 775 | 
 776 | 	```solidity
 777 | 	    ) external onlyOwner {
 778 | 	```
 779 | 
 780 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 59](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L59)
 781 | 
 782 | 	```solidity
 783 | 	    function withdrawToken(IERC20 _token, uint256 _amount) external onlyOwner {
 784 | 	```
 785 | 
 786 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 65](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L65)
 787 | 
 788 | 	```solidity
 789 | 	    function toggleMember(address _address) external onlyOwner {
 790 | 	```
 791 | 
 792 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 22](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L22)
 793 | 
 794 | 	```solidity
 795 | 	contract TempleStableAMMRouter is Ownable {
 796 | 	```
 797 | 
 798 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 48](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L48)
 799 | 
 800 | 	```solidity
 801 | 	    function addPair(address _token, address _pair) external onlyOwner {
 802 | 	```
 803 | 
 804 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L52)
 805 | 
 806 | 	```solidity
 807 | 	    function setTreasury(ITreasuryIV _templeTreasury) external onlyOwner {
 808 | 	```
 809 | 
 810 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 56](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L56)
 811 | 
 812 | 	```solidity
 813 | 	    function setDefendStable(address _defendStable) external onlyOwner {
 814 | 	```
 815 | 
 816 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 226](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L226)
 817 | 
 818 | 	```solidity
 819 | 	  function withdraw(address token, address to, uint256 amount) external onlyOwner {
 820 | 	```
 821 | 
 822 | - Found in contracts/amm/TreasuryIV.sol [Line: 9](../tests/2024-07-templegold/protocol/contracts/amm/TreasuryIV.sol#L9)
 823 | 
 824 | 	```solidity
 825 | 	contract TreasuryIV is Ownable {
 826 | 	```
 827 | 
 828 | - Found in contracts/amm/TreasuryIV.sol [Line: 23](../tests/2024-07-templegold/protocol/contracts/amm/TreasuryIV.sol#L23)
 829 | 
 830 | 	```solidity
 831 | 	    function setIV(uint256 frax, uint256 temple) external onlyOwner {
 832 | 	```
 833 | 
 834 | - Found in contracts/core/Exposure.sol [Line: 15](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L15)
 835 | 
 836 | 	```solidity
 837 | 	contract Exposure is Ownable, RebasingERC20 {
 838 | 	```
 839 | 
 840 | - Found in contracts/core/Exposure.sol [Line: 47](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L47)
 841 | 
 842 | 	```solidity
 843 | 	    function increaseReval(uint256 amount) external onlyOwner {
 844 | 	```
 845 | 
 846 | - Found in contracts/core/Exposure.sol [Line: 57](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L57)
 847 | 
 848 | 	```solidity
 849 | 	    function decreaseReval(uint256 amount) external onlyOwner {
 850 | 	```
 851 | 
 852 | - Found in contracts/core/Exposure.sol [Line: 67](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L67)
 853 | 
 854 | 	```solidity
 855 | 	    function setLiqidator(ILiquidator _liquidator) external onlyOwner {
 856 | 	```
 857 | 
 858 | - Found in contracts/core/Exposure.sol [Line: 76](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L76)
 859 | 
 860 | 	```solidity
 861 | 	    function setMinterState(address account, bool state) external onlyOwner {
 862 | 	```
 863 | 
 864 | - Found in contracts/core/JoiningFee.sol [Line: 16](../tests/2024-07-templegold/protocol/contracts/core/JoiningFee.sol#L16)
 865 | 
 866 | 	```solidity
 867 | 	contract JoiningFee is Ownable {
 868 | 	```
 869 | 
 870 | - Found in contracts/core/JoiningFee.sol [Line: 41](../tests/2024-07-templegold/protocol/contracts/core/JoiningFee.sol#L41)
 871 | 
 872 | 	```solidity
 873 | 	    function setHourlyJoiningFeeFor(address vault, uint256 amount) external onlyOwner {
 874 | 	```
 875 | 
 876 | - Found in contracts/core/OpsManager.sol [Line: 17](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L17)
 877 | 
 878 | 	```solidity
 879 | 	contract OpsManager is Ownable {
 880 | 	```
 881 | 
 882 | - Found in contracts/core/OpsManager.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L49)
 883 | 
 884 | 	```solidity
 885 | 	    ) external onlyOwner  {
 886 | 	```
 887 | 
 888 | - Found in contracts/core/OpsManager.sol [Line: 70](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L70)
 889 | 
 890 | 	```solidity
 891 | 	    ) external onlyOwner {
 892 | 	```
 893 | 
 894 | - Found in contracts/core/OpsManager.sol [Line: 110](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L110)
 895 | 
 896 | 	```solidity
 897 | 	    function addRevenue(IERC20[] memory exposureTokens, uint256[] memory amounts) external onlyOwner {
 898 | 	```
 899 | 
 900 | - Found in contracts/core/OpsManager.sol [Line: 121](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L121)
 901 | 
 902 | 	```solidity
 903 | 	    function updateExposureReval(IERC20[] memory exposureTokens, uint256[] memory revals) external onlyOwner {
 904 | 	```
 905 | 
 906 | - Found in contracts/core/OpsManager.sol [Line: 130](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L130)
 907 | 
 908 | 	```solidity
 909 | 	    function increaseVaultTemple(Vault[] memory vaults, uint256[] memory amountsTemple) external onlyOwner {
 910 | 	```
 911 | 
 912 | - Found in contracts/core/OpsManager.sol [Line: 144](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L144)
 913 | 
 914 | 	```solidity
 915 | 	    function liquidateExposures(Vault[] memory vaults, IERC20[] memory exposureTokens) external onlyOwner {
 916 | 	```
 917 | 
 918 | - Found in contracts/core/OpsManager.sol [Line: 170](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L170)
 919 | 
 920 | 	```solidity
 921 | 	    function setExposureLiquidator(IERC20 exposureToken, ILiquidator _liquidator) external onlyOwner {
 922 | 	```
 923 | 
 924 | - Found in contracts/core/OpsManager.sol [Line: 178](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L178)
 925 | 
 926 | 	```solidity
 927 | 	    function setExposureMinterState(IERC20 exposureToken, address account, bool state) external onlyOwner {
 928 | 	```
 929 | 
 930 | - Found in contracts/core/OtcOffer.sol [Line: 19](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L19)
 931 | 
 932 | 	```solidity
 933 | 	contract OtcOffer is Pausable, Ownable {
 934 | 	```
 935 | 
 936 | - Found in contracts/core/OtcOffer.sol [Line: 98](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L98)
 937 | 
 938 | 	```solidity
 939 | 	    function pause() external onlyOwner {
 940 | 	```
 941 | 
 942 | - Found in contracts/core/OtcOffer.sol [Line: 103](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L103)
 943 | 
 944 | 	```solidity
 945 | 	    function unpause() external onlyOwner {
 946 | 	```
 947 | 
 948 | - Found in contracts/core/OtcOffer.sol [Line: 108](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L108)
 949 | 
 950 | 	```solidity
 951 | 	    function setFundsOwner(address _fundsOwner) external onlyOwner {
 952 | 	```
 953 | 
 954 | - Found in contracts/core/OtcOffer.sol [Line: 116](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L116)
 955 | 
 956 | 	```solidity
 957 | 	    function setOfferPrice(uint256 _offerPrice) external onlyOwner {
 958 | 	```
 959 | 
 960 | - Found in contracts/core/OtcOffer.sol [Line: 123](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L123)
 961 | 
 962 | 	```solidity
 963 | 	    function setOfferPriceRange(uint128 _minValidOfferPrice, uint128 _maxValidOfferPrice) external onlyOwner {
 964 | 	```
 965 | 
 966 | - Found in contracts/core/TempleERC20Token.sol [Line: 11](../tests/2024-07-templegold/protocol/contracts/core/TempleERC20Token.sol#L11)
 967 | 
 968 | 	```solidity
 969 | 	contract TempleERC20Token is ERC20, ERC20Burnable, Ownable, AccessControl {
 970 | 	```
 971 | 
 972 | - Found in contracts/core/TempleERC20Token.sol [Line: 23](../tests/2024-07-templegold/protocol/contracts/core/TempleERC20Token.sol#L23)
 973 | 
 974 | 	```solidity
 975 | 	    function addMinter(address account) external onlyOwner {
 976 | 	```
 977 | 
 978 | - Found in contracts/core/TempleERC20Token.sol [Line: 27](../tests/2024-07-templegold/protocol/contracts/core/TempleERC20Token.sol#L27)
 979 | 
 980 | 	```solidity
 981 | 	    function removeMinter(address account) external onlyOwner {
 982 | 	```
 983 | 
 984 | - Found in contracts/core/TreasuryFarmingRevenue.sol [Line: 17](../tests/2024-07-templegold/protocol/contracts/core/TreasuryFarmingRevenue.sol#L17)
 985 | 
 986 | 	```solidity
 987 | 	contract TreasuryFarmingRevenue is Ownable {
 988 | 	```
 989 | 
 990 | - Found in contracts/core/TreasuryFarmingRevenue.sol [Line: 48](../tests/2024-07-templegold/protocol/contracts/core/TreasuryFarmingRevenue.sol#L48)
 991 | 
 992 | 	```solidity
 993 | 	    function addRevenue(uint256 revenueEarned) onlyOwner public {
 994 | 	```
 995 | 
 996 | - Found in contracts/core/TreasuryFarmingRevenue.sol [Line: 56](../tests/2024-07-templegold/protocol/contracts/core/TreasuryFarmingRevenue.sol#L56)
 997 | 
 998 | 	```solidity
 999 | 	    function increaseShares(address account, uint256 amount) onlyOwner external {
1000 | 	```
1001 | 
1002 | - Found in contracts/core/TreasuryFarmingRevenue.sol [Line: 69](../tests/2024-07-templegold/protocol/contracts/core/TreasuryFarmingRevenue.sol#L69)
1003 | 
1004 | 	```solidity
1005 | 	    function decreaseShares(address account, uint256 amount) onlyOwner external {
1006 | 	```
1007 | 
1008 | - Found in contracts/core/Vault.sol [Line: 29](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L29)
1009 | 
1010 | 	```solidity
1011 | 	contract Vault is Nonces, EIP712, Ownable, RebasingERC20 {
1012 | 	```
1013 | 
1014 | - Found in contracts/core/Vault.sol [Line: 113](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L113)
1015 | 
1016 | 	```solidity
1017 | 	    function redeemExposures(Exposure[] memory exposures) external onlyOwner {
1018 | 	```
1019 | 
1020 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 15](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L15)
1021 | 
1022 | 	```solidity
1023 | 	contract VaultEarlyWithdraw is Pausable, Ownable {
1024 | 	```
1025 | 
1026 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 41](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L41)
1027 | 
1028 | 	```solidity
1029 | 	    function pause() external onlyOwner {
1030 | 	```
1031 | 
1032 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 45](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L45)
1033 | 
1034 | 	```solidity
1035 | 	    function unpause() external onlyOwner {
1036 | 	```
1037 | 
1038 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L49)
1039 | 
1040 | 	```solidity
1041 | 	    function setMinWithdrawAmount(uint256 amount) external onlyOwner {
1042 | 	```
1043 | 
1044 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 73](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L73)
1045 | 
1046 | 	```solidity
1047 | 	    function recoverToken(address token, address to, uint256 amount) external onlyOwner {
1048 | 	```
1049 | 
1050 | - Found in contracts/core/VaultProxy.sol [Line: 16](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L16)
1051 | 
1052 | 	```solidity
1053 | 	contract VaultProxy is Ownable {
1054 | 	```
1055 | 
1056 | - Found in contracts/core/VaultProxy.sol [Line: 118](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L118)
1057 | 
1058 | 	```solidity
1059 | 	    function toggleFaithClaimEnabled() external onlyOwner {
1060 | 	```
1061 | 
1062 | - Found in contracts/core/VaultProxy.sol [Line: 125](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L125)
1063 | 
1064 | 	```solidity
1065 | 	    function withdraw(address token, address to, uint256 amount) external onlyOwner {
1066 | 	```
1067 | 
1068 | - Found in contracts/core/VaultedTemple.sol [Line: 35](../tests/2024-07-templegold/protocol/contracts/core/VaultedTemple.sol#L35)
1069 | 
1070 | 	```solidity
1071 | 	contract VaultedTemple is ILiquidator, Ownable {
1072 | 	```
1073 | 
1074 | - Found in contracts/core/VaultedTemple.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/core/VaultedTemple.sol#L52)
1075 | 
1076 | 	```solidity
1077 | 	    function withdraw(address token, address to, uint256 amount) external onlyOwner {
1078 | 	```
1079 | 
1080 | - Found in contracts/deprecated/Faith.sol [Line: 6](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L6)
1081 | 
1082 | 	```solidity
1083 | 	contract Faith is Ownable {
1084 | 	```
1085 | 
1086 | - Found in contracts/deprecated/Faith.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L50)
1087 | 
1088 | 	```solidity
1089 | 	    function addManager(address account) external onlyOwner {
1090 | 	```
1091 | 
1092 | - Found in contracts/deprecated/Faith.sol [Line: 54](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L54)
1093 | 
1094 | 	```solidity
1095 | 	    function removeManager(address account) external onlyOwner {
1096 | 	```
1097 | 
1098 | - Found in contracts/deprecated/OGTemple.sol [Line: 16](../tests/2024-07-templegold/protocol/contracts/deprecated/OGTemple.sol#L16)
1099 | 
1100 | 	```solidity
1101 | 	contract OGTemple is ERC20, ERC20Burnable, Ownable {
1102 | 	```
1103 | 
1104 | - Found in contracts/deprecated/OGTemple.sol [Line: 19](../tests/2024-07-templegold/protocol/contracts/deprecated/OGTemple.sol#L19)
1105 | 
1106 | 	```solidity
1107 | 	    function mint(address to, uint256 amount) external onlyOwner {
1108 | 	```
1109 | 
1110 | - Found in contracts/deprecated/TempleStaking.sol [Line: 18](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L18)
1111 | 
1112 | 	```solidity
1113 | 	contract TempleStaking is Ownable {
1114 | 	```
1115 | 
1116 | - Found in contracts/deprecated/TempleStaking.sol [Line: 67](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L67)
1117 | 
1118 | 	```solidity
1119 | 	    function setExitQueue(IExitQueue _EXIT_QUEUE) external onlyOwner {
1120 | 	```
1121 | 
1122 | - Found in contracts/deprecated/TempleStaking.sol [Line: 72](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L72)
1123 | 
1124 | 	```solidity
1125 | 	    function setEpy(uint256 _numerator, uint256 _denominator) external onlyOwner {
1126 | 	```
1127 | 
1128 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 58](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L58)
1129 | 
1130 | 	```solidity
1131 | 	    function authorizeContract(address _contract, bool _whitelist) external onlyOwner {
1132 | 	```
1133 | 
1134 | - Found in contracts/fakes/templegold/TempleTokenMock.sol [Line: 9](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleTokenMock.sol#L9)
1135 | 
1136 | 	```solidity
1137 | 	contract TempleTokenMock is ERC20, ERC20Burnable, Ownable, AccessControl {
1138 | 	```
1139 | 
1140 | - Found in contracts/fakes/templegold/TempleTokenMock.sol [Line: 21](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleTokenMock.sol#L21)
1141 | 
1142 | 	```solidity
1143 | 	    function addMinter(address account) external onlyOwner {
1144 | 	```
1145 | 
1146 | - Found in contracts/fakes/templegold/TempleTokenMock.sol [Line: 25](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleTokenMock.sol#L25)
1147 | 
1148 | 	```solidity
1149 | 	    function removeMinter(address account) external onlyOwner {
1150 | 	```
1151 | 
1152 | - Found in contracts/governance/ElderElection.sol [Line: 24](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L24)
1153 | 
1154 | 	```solidity
1155 | 	contract ElderElection is Nonces, AccessControl {
1156 | 	```
1157 | 
1158 | - Found in contracts/governance/ElderElection.sol [Line: 73](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L73)
1159 | 
1160 | 	```solidity
1161 | 	    function nominate(uint256 discordId) external onlyRole(CAN_NOMINATE) {
1162 | 	```
1163 | 
1164 | - Found in contracts/governance/ElderElection.sol [Line: 86](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L86)
1165 | 
1166 | 	```solidity
1167 | 	    function resign(uint256 discordId) external onlyRole(CAN_NOMINATE) {
1168 | 	```
1169 | 
1170 | - Found in contracts/governance/Templar.sol [Line: 12](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L12)
1171 | 
1172 | 	```solidity
1173 | 	contract Templar is ERC721, AccessControl {
1174 | 	```
1175 | 
1176 | - Found in contracts/governance/Templar.sol [Line: 35](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L35)
1177 | 
1178 | 	```solidity
1179 | 	    function setBaseUri(string calldata _baseUri) external onlyRole(OWNER) {
1180 | 	```
1181 | 
1182 | - Found in contracts/governance/Templar.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L49)
1183 | 
1184 | 	```solidity
1185 | 	    ) external onlyRole(CAN_ASSIGN) {
1186 | 	```
1187 | 
1188 | - Found in contracts/governance/TemplarMetadata.sol [Line: 10](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L10)
1189 | 
1190 | 	```solidity
1191 | 	contract TemplarMetadata is AccessControl {
1192 | 	```
1193 | 
1194 | - Found in contracts/governance/TemplarMetadata.sol [Line: 31](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L31)
1195 | 
1196 | 	```solidity
1197 | 	    ) external onlyRole(CAN_UPDATE) {
1198 | 	```
1199 | 
1200 | - Found in contracts/templegold/TempleGold.sol [Line: 79](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L79)
1201 | 
1202 | 	```solidity
1203 | 	    function setStaking(address _staking) external override onlyOwner {
1204 | 	```
1205 | 
1206 | - Found in contracts/templegold/TempleGold.sol [Line: 89](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L89)
1207 | 
1208 | 	```solidity
1209 | 	    function setEscrow(address _escrow) external override onlyOwner {
1210 | 	```
1211 | 
1212 | - Found in contracts/templegold/TempleGold.sol [Line: 99](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L99)
1213 | 
1214 | 	```solidity
1215 | 	    function setTeamGnosis(address _gnosis) external override onlyOwner {
1216 | 	```
1217 | 
1218 | - Found in contracts/templegold/TempleGold.sol [Line: 110](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L110)
1219 | 
1220 | 	```solidity
1221 | 	    function authorizeContract(address _contract, bool _whitelist) external override onlyOwner {
1222 | 	```
1223 | 
1224 | - Found in contracts/templegold/TempleGold.sol [Line: 120](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L120)
1225 | 
1226 | 	```solidity
1227 | 	    function setDistributionParams(DistributionParams calldata _params) external override onlyOwner {
1228 | 	```
1229 | 
1230 | - Found in contracts/templegold/TempleGold.sol [Line: 130](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L130)
1231 | 
1232 | 	```solidity
1233 | 	    function setVestingFactor(VestingFactor calldata _factor) external override onlyOwner {
1234 | 	```
1235 | 
1236 | </details>
1237 | 
1238 | 
1239 | 
1240 | ## L-3: Costly operations inside loop
1241 | 
1242 | Invoking `SSTORE` operations in loops may waste gas. Use a local variable to hold the loop computation result.
1243 | 
1244 | <details><summary>13 Found Instances</summary>
1245 | 
1246 | 
1247 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 38](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L38)
1248 | 
1249 | 	```solidity
1250 | 	        for (uint256 i = 0; i < _addresses.length; i++) {
1251 | 	```
1252 | 
1253 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L50)
1254 | 
1255 | 	```solidity
1256 | 	        for (uint256 i; i < _addresses.length; ) {
1257 | 	```
1258 | 
1259 | - Found in contracts/v2/TempleDebtToken.sol [Line: 454](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L454)
1260 | 
1261 | 	```solidity
1262 | 	        for (uint256 i; i < _length; ++i) {
1263 | 	```
1264 | 
1265 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 187](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L187)
1266 | 
1267 | 	```solidity
1268 | 	        for (uint256 i; i < _length; ++i) {
1269 | 	```
1270 | 
1271 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 216](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L216)
1272 | 
1273 | 	```solidity
1274 | 	        for (; i < _length; ++i) {
1275 | 	```
1276 | 
1277 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 223](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L223)
1278 | 
1279 | 	```solidity
1280 | 	        for (i = 0; i < _length; ++i) {
1281 | 	```
1282 | 
1283 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 294](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L294)
1284 | 
1285 | 	```solidity
1286 | 	        for (uint256 i; i < _length; ++i) {
1287 | 	```
1288 | 
1289 | - Found in contracts/v2/access/TempleElevatedAccess.sol [Line: 112](../tests/2024-07-templegold/protocol/contracts/v2/access/TempleElevatedAccess.sol#L112)
1290 | 
1291 | 	```solidity
1292 | 	        for (uint256 i; i < _length; ++i) {
1293 | 	```
1294 | 
1295 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol [Line: 100](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L100)
1296 | 
1297 | 	```solidity
1298 | 	                for (; _minBucketResetIndex < _nextBucketIndex; ++_minBucketResetIndex) {
1299 | 	```
1300 | 
1301 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol [Line: 197](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L197)
1302 | 
1303 | 	```solidity
1304 | 	            for (uint256 i = 0; i < _nBuckets; ++i) {
1305 | 	```
1306 | 
1307 | - Found in contracts/v2/safeGuards/ThresholdSafeGuard.sol [Line: 126](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/ThresholdSafeGuard.sol#L126)
1308 | 
1309 | 	```solidity
1310 | 	        for (uint256 i; i < length; ++i) {
1311 | 	```
1312 | 
1313 | - Found in contracts/v2/strategies/AbstractStrategy.sol [Line: 100](../tests/2024-07-templegold/protocol/contracts/v2/strategies/AbstractStrategy.sol#L100)
1314 | 
1315 | 	```solidity
1316 | 	        for (uint256 i; i < _length; ++i) {
1317 | 	```
1318 | 
1319 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 330](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L330)
1320 | 
1321 | 	```solidity
1322 | 	        for (uint256 i; i < _numAccounts; ++i) {
1323 | 	```
1324 | 
1325 | </details>
1326 | 
1327 | 
1328 | 
1329 | ## L-4: Incorrect Order of Division and Multiplication
1330 | 
1331 | Division operations followed directly by multiplication operations can lead to precision loss due to the way integer arithmetic is handled in Solidity./
1332 |         Consider Multiplication before Division.
1333 | 
1334 | <details><summary>1 Found Instances</summary>
1335 | 
1336 | 
1337 | - Found in contracts/core/JoiningFee.sol [Line: 38](../tests/2024-07-templegold/protocol/contracts/core/JoiningFee.sol#L38)
1338 | 
1339 | 	```solidity
1340 | 	        return (block.timestamp - (numCycles * periodDuration) - firstPeriodStartTimestamp) / 3600 * feePerHour;
1341 | 	```
1342 | 
1343 | </details>
1344 | 
1345 | 
1346 | 
1347 | ## L-5: `ecrecover` Signature Malleability
1348 | 
1349 | The `ecrecover` function is susceptible to signature malleability. This means that the same message can be signed in multiple ways, allowing an attacker to change the message signature without invalidating it. This can lead to unexpected behavior in smart contracts, such as the loss of funds or the ability to bypass access control. Consider using OpenZeppelin's ECDSA library instead of the built-in function.
1350 | 
1351 | <details><summary>2 Found Instances</summary>
1352 | 
1353 | 
1354 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 120](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L120)
1355 | 
1356 | 	```solidity
1357 | 	                currentOwner = ecrecover(keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", dataHash)), v - 4, r, s);
1358 | 	```
1359 | 
1360 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 124](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L124)
1361 | 
1362 | 	```solidity
1363 | 	                currentOwner = ecrecover(dataHash, v, r, s);
1364 | 	```
1365 | 
1366 | </details>
1367 | 
1368 | 
1369 | 
1370 | ## L-6: Empty Block
1371 | 
1372 | Consider removing empty blocks.
1373 | 
1374 | <details><summary>7 Found Instances</summary>
1375 | 
1376 | 
1377 | - Found in contracts/amo/test/RamosTestnetAuraStaking.sol [Line: 70](../tests/2024-07-templegold/protocol/contracts/amo/test/RamosTestnetAuraStaking.sol#L70)
1378 | 
1379 | 	```solidity
1380 | 	    function depositAndStake(uint256 /*amount*/) external override {
1381 | 	```
1382 | 
1383 | - Found in contracts/v2/safeGuards/ThresholdSafeGuard.sol [Line: 247](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/ThresholdSafeGuard.sol#L247)
1384 | 
1385 | 	```solidity
1386 | 	    function checkAfterExecution(bytes32, bool) external view {}
1387 | 	```
1388 | 
1389 | - Found in contracts/v2/strategies/AbstractStrategy.sol [Line: 146](../tests/2024-07-templegold/protocol/contracts/v2/strategies/AbstractStrategy.sol#L146)
1390 | 
1391 | 	```solidity
1392 | 	    function populateShutdownData(
1393 | 	```
1394 | 
1395 | - Found in contracts/v2/strategies/AbstractStrategy.sol [Line: 228](../tests/2024-07-templegold/protocol/contracts/v2/strategies/AbstractStrategy.sol#L228)
1396 | 
1397 | 	```solidity
1398 | 	    function _debtCeilingUpdated(IERC20 /*token*/, uint256 /*newDebtCeiling*/) internal virtual {}
1399 | 	```
1400 | 
1401 | - Found in contracts/v2/strategies/GnosisStrategy.sol [Line: 51](../tests/2024-07-templegold/protocol/contracts/v2/strategies/GnosisStrategy.sol#L51)
1402 | 
1403 | 	```solidity
1404 | 	    function _updateTrvApprovals(
1405 | 	```
1406 | 
1407 | - Found in contracts/v2/strategies/TempleTokenBaseStrategy.sol [Line: 42](../tests/2024-07-templegold/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol#L42)
1408 | 
1409 | 	```solidity
1410 | 	    function _updateTrvApprovals(
1411 | 	```
1412 | 
1413 | - Found in contracts/v2/strategies/TlcStrategy.sol [Line: 43](../tests/2024-07-templegold/protocol/contracts/v2/strategies/TlcStrategy.sol#L43)
1414 | 
1415 | 	```solidity
1416 | 	    function _updateTrvApprovals(
1417 | 	```
1418 | 
1419 | </details>
1420 | 
1421 | 
1422 | 
1423 | ## L-7: Empty `require()` / `revert()` Statement
1424 | 
1425 | Use descriptive reason strings or custom errors for revert paths.
1426 | 
1427 | <details><summary>55 Found Instances</summary>
1428 | 
1429 | 
1430 | - Found in contracts/core/OpsManager.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L50)
1431 | 
1432 | 	```solidity
1433 | 	        require(address(pools[revalToken]) == address(0));
1434 | 	```
1435 | 
1436 | - Found in contracts/util/ABDKMath64x64.sol [Line: 36](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L36)
1437 | 
1438 | 	```solidity
1439 | 	      require (x >= -0x8000000000000000 && x <= 0x7FFFFFFFFFFFFFFF);
1440 | 	```
1441 | 
1442 | - Found in contracts/util/ABDKMath64x64.sol [Line: 63](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L63)
1443 | 
1444 | 	```solidity
1445 | 	      require (x <= 0x7FFFFFFFFFFFFFFF);
1446 | 	```
1447 | 
1448 | - Found in contracts/util/ABDKMath64x64.sol [Line: 77](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L77)
1449 | 
1450 | 	```solidity
1451 | 	      require (x >= 0);
1452 | 	```
1453 | 
1454 | - Found in contracts/util/ABDKMath64x64.sol [Line: 92](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L92)
1455 | 
1456 | 	```solidity
1457 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
1458 | 	```
1459 | 
1460 | - Found in contracts/util/ABDKMath64x64.sol [Line: 120](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L120)
1461 | 
1462 | 	```solidity
1463 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
1464 | 	```
1465 | 
1466 | - Found in contracts/util/ABDKMath64x64.sol [Line: 135](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L135)
1467 | 
1468 | 	```solidity
1469 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
1470 | 	```
1471 | 
1472 | - Found in contracts/util/ABDKMath64x64.sol [Line: 150](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L150)
1473 | 
1474 | 	```solidity
1475 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
1476 | 	```
1477 | 
1478 | - Found in contracts/util/ABDKMath64x64.sol [Line: 166](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L166)
1479 | 
1480 | 	```solidity
1481 | 	        require (y >= -0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF &&
1482 | 	```
1483 | 
1484 | - Found in contracts/util/ABDKMath64x64.sol [Line: 181](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L181)
1485 | 
1486 | 	```solidity
1487 | 	          require (absoluteResult <=
1488 | 	```
1489 | 
1490 | - Found in contracts/util/ABDKMath64x64.sol [Line: 185](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L185)
1491 | 
1492 | 	```solidity
1493 | 	          require (absoluteResult <=
1494 | 	```
1495 | 
1496 | - Found in contracts/util/ABDKMath64x64.sol [Line: 205](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L205)
1497 | 
1498 | 	```solidity
1499 | 	      require (x >= 0);
1500 | 	```
1501 | 
1502 | - Found in contracts/util/ABDKMath64x64.sol [Line: 210](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L210)
1503 | 
1504 | 	```solidity
1505 | 	      require (hi <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
1506 | 	```
1507 | 
1508 | - Found in contracts/util/ABDKMath64x64.sol [Line: 213](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L213)
1509 | 
1510 | 	```solidity
1511 | 	      require (hi <=
1512 | 	```
1513 | 
1514 | - Found in contracts/util/ABDKMath64x64.sol [Line: 229](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L229)
1515 | 
1516 | 	```solidity
1517 | 	      require (y != 0);
1518 | 	```
1519 | 
1520 | - Found in contracts/util/ABDKMath64x64.sol [Line: 231](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L231)
1521 | 
1522 | 	```solidity
1523 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
1524 | 	```
1525 | 
1526 | - Found in contracts/util/ABDKMath64x64.sol [Line: 246](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L246)
1527 | 
1528 | 	```solidity
1529 | 	      require (y != 0);
1530 | 	```
1531 | 
1532 | - Found in contracts/util/ABDKMath64x64.sol [Line: 259](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L259)
1533 | 
1534 | 	```solidity
1535 | 	        require (absoluteResult <= 0x80000000000000000000000000000000);
1536 | 	```
1537 | 
1538 | - Found in contracts/util/ABDKMath64x64.sol [Line: 262](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L262)
1539 | 
1540 | 	```solidity
1541 | 	        require (absoluteResult <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
1542 | 	```
1543 | 
1544 | - Found in contracts/util/ABDKMath64x64.sol [Line: 278](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L278)
1545 | 
1546 | 	```solidity
1547 | 	      require (y != 0);
1548 | 	```
1549 | 
1550 | - Found in contracts/util/ABDKMath64x64.sol [Line: 280](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L280)
1551 | 
1552 | 	```solidity
1553 | 	      require (result <= uint128 (MAX_64x64));
1554 | 	```
1555 | 
1556 | - Found in contracts/util/ABDKMath64x64.sol [Line: 293](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L293)
1557 | 
1558 | 	```solidity
1559 | 	      require (x != MIN_64x64);
1560 | 	```
1561 | 
1562 | - Found in contracts/util/ABDKMath64x64.sol [Line: 306](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L306)
1563 | 
1564 | 	```solidity
1565 | 	      require (x != MIN_64x64);
1566 | 	```
1567 | 
1568 | - Found in contracts/util/ABDKMath64x64.sol [Line: 320](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L320)
1569 | 
1570 | 	```solidity
1571 | 	      require (x != 0);
1572 | 	```
1573 | 
1574 | - Found in contracts/util/ABDKMath64x64.sol [Line: 322](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L322)
1575 | 
1576 | 	```solidity
1577 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
1578 | 	```
1579 | 
1580 | - Found in contracts/util/ABDKMath64x64.sol [Line: 351](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L351)
1581 | 
1582 | 	```solidity
1583 | 	      require (m >= 0);
1584 | 	```
1585 | 
1586 | - Found in contracts/util/ABDKMath64x64.sol [Line: 352](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L352)
1587 | 
1588 | 	```solidity
1589 | 	      require (m <
1590 | 	```
1591 | 
1592 | - Found in contracts/util/ABDKMath64x64.sol [Line: 412](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L412)
1593 | 
1594 | 	```solidity
1595 | 	          require (absXShift < 64);
1596 | 	```
1597 | 
1598 | - Found in contracts/util/ABDKMath64x64.sol [Line: 432](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L432)
1599 | 
1600 | 	```solidity
1601 | 	        require (resultShift < 64);
1602 | 	```
1603 | 
1604 | - Found in contracts/util/ABDKMath64x64.sol [Line: 436](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L436)
1605 | 
1606 | 	```solidity
1607 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
1608 | 	```
1609 | 
1610 | - Found in contracts/util/ABDKMath64x64.sol [Line: 449](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L449)
1611 | 
1612 | 	```solidity
1613 | 	      require (x >= 0);
1614 | 	```
1615 | 
1616 | - Found in contracts/util/ABDKMath64x64.sol [Line: 462](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L462)
1617 | 
1618 | 	```solidity
1619 | 	      require (x > 0);
1620 | 	```
1621 | 
1622 | - Found in contracts/util/ABDKMath64x64.sol [Line: 495](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L495)
1623 | 
1624 | 	```solidity
1625 | 	      require (x > 0);
1626 | 	```
1627 | 
1628 | - Found in contracts/util/ABDKMath64x64.sol [Line: 510](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L510)
1629 | 
1630 | 	```solidity
1631 | 	      require (x < 0x400000000000000000); // Overflow
1632 | 	```
1633 | 
1634 | - Found in contracts/util/ABDKMath64x64.sol [Line: 646](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L646)
1635 | 
1636 | 	```solidity
1637 | 	      require (result <= uint256 (int256 (MAX_64x64)));
1638 | 	```
1639 | 
1640 | - Found in contracts/util/ABDKMath64x64.sol [Line: 660](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L660)
1641 | 
1642 | 	```solidity
1643 | 	      require (x < 0x400000000000000000); // Overflow
1644 | 	```
1645 | 
1646 | - Found in contracts/util/ABDKMath64x64.sol [Line: 679](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L679)
1647 | 
1648 | 	```solidity
1649 | 	      require (y != 0);
1650 | 	```
1651 | 
1652 | - Found in contracts/util/ABDKMath64x64.sol [Line: 696](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L696)
1653 | 
1654 | 	```solidity
1655 | 	        require (result <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
1656 | 	```
1657 | 
1658 | - Found in contracts/util/ABDKMath64x64.sol [Line: 715](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L715)
1659 | 
1660 | 	```solidity
1661 | 	      require (result <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
1662 | 	```
1663 | 
1664 | - Found in contracts/util/ABDKMathQuad.sol [Line: 76](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L76)
1665 | 
1666 | 	```solidity
1667 | 	      require (exponent <= 16638); // Overflow
1668 | 	```
1669 | 
1670 | - Found in contracts/util/ABDKMathQuad.sol [Line: 86](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L86)
1671 | 
1672 | 	```solidity
1673 | 	        require (result <= 0x8000000000000000000000000000000000000000000000000000000000000000);
1674 | 	```
1675 | 
1676 | - Found in contracts/util/ABDKMathQuad.sol [Line: 89](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L89)
1677 | 
1678 | 	```solidity
1679 | 	        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
1680 | 	```
1681 | 
1682 | - Found in contracts/util/ABDKMathQuad.sol [Line: 133](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L133)
1683 | 
1684 | 	```solidity
1685 | 	      require (uint128 (x) < 0x80000000000000000000000000000000); // Negative
1686 | 	```
1687 | 
1688 | - Found in contracts/util/ABDKMathQuad.sol [Line: 135](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L135)
1689 | 
1690 | 	```solidity
1691 | 	      require (exponent <= 16638); // Overflow
1692 | 	```
1693 | 
1694 | - Found in contracts/util/ABDKMathQuad.sol [Line: 183](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L183)
1695 | 
1696 | 	```solidity
1697 | 	      require (exponent <= 16510); // Overflow
1698 | 	```
1699 | 
1700 | - Found in contracts/util/ABDKMathQuad.sol [Line: 193](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L193)
1701 | 
1702 | 	```solidity
1703 | 	        require (result <= 0x8000000000000000000000000000000000000000000000000000000000000000);
1704 | 	```
1705 | 
1706 | - Found in contracts/util/ABDKMathQuad.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L196)
1707 | 
1708 | 	```solidity
1709 | 	        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
1710 | 	```
1711 | 
1712 | - Found in contracts/util/ABDKMathQuad.sol [Line: 239](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L239)
1713 | 
1714 | 	```solidity
1715 | 	      require (exponent <= 16446); // Overflow
1716 | 	```
1717 | 
1718 | - Found in contracts/util/ABDKMathQuad.sol [Line: 249](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L249)
1719 | 
1720 | 	```solidity
1721 | 	        require (result <= 0x80000000000000000000000000000000);
1722 | 	```
1723 | 
1724 | - Found in contracts/util/ABDKMathQuad.sol [Line: 252](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L252)
1725 | 
1726 | 	```solidity
1727 | 	        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
1728 | 	```
1729 | 
1730 | - Found in contracts/util/ABDKMathQuad.sol [Line: 440](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L440)
1731 | 
1732 | 	```solidity
1733 | 	      require (absoluteX <= 0x7FFF0000000000000000000000000000); // Not NaN
1734 | 	```
1735 | 
1736 | - Found in contracts/util/ABDKMathQuad.sol [Line: 460](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L460)
1737 | 
1738 | 	```solidity
1739 | 	      require (absoluteX <= 0x7FFF0000000000000000000000000000); // Not NaN
1740 | 	```
1741 | 
1742 | - Found in contracts/util/ABDKMathQuad.sol [Line: 464](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L464)
1743 | 
1744 | 	```solidity
1745 | 	      require (absoluteY <= 0x7FFF0000000000000000000000000000); // Not NaN
1746 | 	```
1747 | 
1748 | - Found in contracts/util/ABDKMathQuad.sol [Line: 467](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L467)
1749 | 
1750 | 	```solidity
1751 | 	      require (x != y || absoluteX < 0x7FFF0000000000000000000000000000);
1752 | 	```
1753 | 
1754 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1199](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1199)
1755 | 
1756 | 	```solidity
1757 | 	      require (x > 0);
1758 | 	```
1759 | 
1760 | </details>
1761 | 
1762 | 
1763 | 
1764 | ## L-8: Inconsistent uint256/uint (or) int256/int types
1765 | 
1766 | Inconsistency in declaring uint256/uint (or) int256/int variables within a contract. Use explicit size declarations (uint256 or int256). Consider keeping the naming convention consistent in a given contract. Explicit size declarations are preferred (uint256, int256) over implicit ones (uint, int) to avoid confusion.
1767 | 
1768 | <details><summary>58 Found Instances</summary>
1769 | 
1770 | 
1771 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 32](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L32)
1772 | 
1773 | 	```solidity
1774 | 	    modifier ensure(uint deadline) {
1775 | 	```
1776 | 
1777 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 62](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L62)
1778 | 
1779 | 	```solidity
1780 | 	        uint amountADesired,
1781 | 	```
1782 | 
1783 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 63](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L63)
1784 | 
1785 | 	```solidity
1786 | 	        uint amountBDesired,
1787 | 	```
1788 | 
1789 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 64](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L64)
1790 | 
1791 | 	```solidity
1792 | 	        uint amountAMin,
1793 | 	```
1794 | 
1795 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 65](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L65)
1796 | 
1797 | 	```solidity
1798 | 	        uint amountBMin,
1799 | 	```
1800 | 
1801 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 67](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L67)
1802 | 
1803 | 	```solidity
1804 | 	    ) internal virtual returns (uint amountA, uint amountB) {
1805 | 	```
1806 | 
1807 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 68](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L68)
1808 | 
1809 | 	```solidity
1810 | 	        (uint reserveA, uint reserveB,) = pair.getReserves();
1811 | 	```
1812 | 
1813 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 72](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L72)
1814 | 
1815 | 	```solidity
1816 | 	            uint amountBOptimal = quote(amountADesired, reserveA, reserveB);
1817 | 	```
1818 | 
1819 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 77](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L77)
1820 | 
1821 | 	```solidity
1822 | 	                uint amountAOptimal = quote(amountBDesired, reserveB, reserveA);
1823 | 	```
1824 | 
1825 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 86](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L86)
1826 | 
1827 | 	```solidity
1828 | 	        uint amountADesired,
1829 | 	```
1830 | 
1831 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 87](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L87)
1832 | 
1833 | 	```solidity
1834 | 	        uint amountBDesired,
1835 | 	```
1836 | 
1837 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 88](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L88)
1838 | 
1839 | 	```solidity
1840 | 	        uint amountAMin,
1841 | 	```
1842 | 
1843 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 89](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L89)
1844 | 
1845 | 	```solidity
1846 | 	        uint amountBMin,
1847 | 	```
1848 | 
1849 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 92](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L92)
1850 | 
1851 | 	```solidity
1852 | 	        uint deadline
1853 | 	```
1854 | 
1855 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 93](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L93)
1856 | 
1857 | 	```solidity
1858 | 	    ) external virtual ensure(deadline) returns (uint amountA, uint amountB, uint liquidity) {
1859 | 	```
1860 | 
1861 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 106](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L106)
1862 | 
1863 | 	```solidity
1864 | 	        uint liquidity,
1865 | 	```
1866 | 
1867 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 107](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L107)
1868 | 
1869 | 	```solidity
1870 | 	        uint amountAMin,
1871 | 	```
1872 | 
1873 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 108](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L108)
1874 | 
1875 | 	```solidity
1876 | 	        uint amountBMin,
1877 | 	```
1878 | 
1879 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 111](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L111)
1880 | 
1881 | 	```solidity
1882 | 	        uint deadline
1883 | 	```
1884 | 
1885 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 112](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L112)
1886 | 
1887 | 	```solidity
1888 | 	    ) public virtual ensure(deadline) returns (uint amountA, uint amountB) {
1889 | 	```
1890 | 
1891 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 123](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L123)
1892 | 
1893 | 	```solidity
1894 | 	        uint amountIn,
1895 | 	```
1896 | 
1897 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 124](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L124)
1898 | 
1899 | 	```solidity
1900 | 	        uint amountOutMin,
1901 | 	```
1902 | 
1903 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 127](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L127)
1904 | 
1905 | 	```solidity
1906 | 	        uint deadline
1907 | 	```
1908 | 
1909 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 128](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L128)
1910 | 
1911 | 	```solidity
1912 | 	    ) external virtual ensure(deadline) returns (uint amountOut) {
1913 | 	```
1914 | 
1915 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 133](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L133)
1916 | 
1917 | 	```solidity
1918 | 	        uint amountOut = swapExactStableForTempleQuote(pair, amountIn);
1919 | 	```
1920 | 
1921 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 143](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L143)
1922 | 
1923 | 	```solidity
1924 | 	        uint amountIn,
1925 | 	```
1926 | 
1927 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 144](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L144)
1928 | 
1929 | 	```solidity
1930 | 	        uint amountOutMin,
1931 | 	```
1932 | 
1933 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 147](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L147)
1934 | 
1935 | 	```solidity
1936 | 	        uint deadline
1937 | 	```
1938 | 
1939 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 148](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L148)
1940 | 
1941 | 	```solidity
1942 | 	    ) external virtual ensure(deadline) returns (uint) {
1943 | 	```
1944 | 
1945 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 154](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L154)
1946 | 
1947 | 	```solidity
1948 | 	        (bool priceBelowIV, uint amountOut) = swapExactTempleForStableQuote(pair, amountIn);
1949 | 	```
1950 | 
1951 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 177](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L177)
1952 | 
1953 | 	```solidity
1954 | 	    function quote(uint amountA, uint reserveA, uint reserveB) public pure returns (uint amountB) {
1955 | 	```
1956 | 
1957 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 189](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L189)
1958 | 
1959 | 	```solidity
1960 | 	    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut)
1961 | 	```
1962 | 
1963 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 192](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L192)
1964 | 
1965 | 	```solidity
1966 | 	        returns (uint amountOut)
1967 | 	```
1968 | 
1969 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L196)
1970 | 
1971 | 	```solidity
1972 | 	        uint amountInWithFee = amountIn * 995;
1973 | 	```
1974 | 
1975 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 197](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L197)
1976 | 
1977 | 	```solidity
1978 | 	        uint numerator = amountInWithFee * reserveOut;
1979 | 	```
1980 | 
1981 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 198](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L198)
1982 | 
1983 | 	```solidity
1984 | 	        uint denominator = (reserveIn * 1000) + amountInWithFee;
1985 | 	```
1986 | 
1987 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 202](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L202)
1988 | 
1989 | 	```solidity
1990 | 	    function swapExactStableForTempleQuote(address pair, uint amountIn) public view returns (uint amountOut ) {
1991 | 	```
1992 | 
1993 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 203](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L203)
1994 | 
1995 | 	```solidity
1996 | 	        (uint reserveTemple, uint reserveFrax,) = IUniswapV2Pair(pair).getReserves();
1997 | 	```
1998 | 
1999 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 207](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L207)
2000 | 
2001 | 	```solidity
2002 | 	    function swapExactTempleForStableQuote(address pair, uint amountIn) public view returns (bool priceBelowIV, uint amountOut) {
2003 | 	```
2004 | 
2005 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 208](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L208)
2006 | 
2007 | 	```solidity
2008 | 	        (uint reserveTemple, uint reserveFrax,) = IUniswapV2Pair(pair).getReserves();
2009 | 	```
2010 | 
2011 | - Found in contracts/amo/AuraStaking.sol [Line: 116](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L116)
2012 | 
2013 | 	```solidity
2014 | 	            for (uint i; i < length; ++i) {
2015 | 	```
2016 | 
2017 | - Found in contracts/core/RebasingERC20.sol [Line: 84](../tests/2024-07-templegold/protocol/contracts/core/RebasingERC20.sol#L84)
2018 | 
2019 | 	```solidity
2020 | 	    function toTokenAmount(uint sharesAmount) public view returns (uint256 tokenAmount) {
2021 | 	```
2022 | 
2023 | - Found in contracts/core/RebasingERC20.sol [Line: 89](../tests/2024-07-templegold/protocol/contracts/core/RebasingERC20.sol#L89)
2024 | 
2025 | 	```solidity
2026 | 	    function toSharesAmount(uint tokenAmount) public view returns (uint256 sharesAmount) {
2027 | 	```
2028 | 
2029 | - Found in contracts/util/ABDKMathQuad.sol [Line: 783](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L783)
2030 | 
2031 | 	```solidity
2032 | 	            uint shift = 226 - mostSignificantBit (xSignifier);
2033 | 	```
2034 | 
2035 | </details>
2036 | 
2037 | 
2038 | 
2039 | ## L-9: Internal Function Used Only Once
2040 | 
2041 | Instead of separating the logic into a separate function, consider inlining the logic into the calling function. This can reduce the number of function calls and improve readability.
2042 | 
2043 | <details><summary>17 Found Instances</summary>
2044 | 
2045 | 
2046 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 172](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L172)
2047 | 
2048 | 	```solidity
2049 | 	    function createPoolExitRequest(
2050 | 	```
2051 | 
2052 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 190](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L190)
2053 | 
2054 | 	```solidity
2055 | 	    function createPoolJoinRequest(
2056 | 	```
2057 | 
2058 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 283](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L283)
2059 | 
2060 | 	```solidity
2061 | 	    function validateProtocolTokenJoin(
2062 | 	```
2063 | 
2064 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 298](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L298)
2065 | 
2066 | 	```solidity
2067 | 	    function validateProtocolTokenExit(
2068 | 	```
2069 | 
2070 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 316](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L316)
2071 | 
2072 | 	```solidity
2073 | 	    function validateQuoteTokenJoin(
2074 | 	```
2075 | 
2076 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 331](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L331)
2077 | 
2078 | 	```solidity
2079 | 	    function validateQuoteTokenExit(
2080 | 	```
2081 | 
2082 | - Found in contracts/governance/ElderElection.sol [Line: 139](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L139)
2083 | 
2084 | 	```solidity
2085 | 	    function hash(EIP712Domain memory _input) internal pure returns (bytes32) {    
2086 | 	```
2087 | 
2088 | - Found in contracts/governance/ElderElection.sol [Line: 157](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L157)
2089 | 
2090 | 	```solidity
2091 | 	    function hash(EndorsementReq memory _input) internal pure returns (bytes32) {
2092 | 	```
2093 | 
2094 | - Found in contracts/governance/ElderElection.sol [Line: 167](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L167)
2095 | 
2096 | 	```solidity
2097 | 	    function hash(uint256[] memory _input) internal pure returns (bytes32) {
2098 | 	```
2099 | 
2100 | - Found in contracts/util/ABDKMath64x64.sol [Line: 201](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L201)
2101 | 
2102 | 	```solidity
2103 | 	  function mulu (int128 x, uint256 y) internal pure returns (uint256) {
2104 | 	```
2105 | 
2106 | - Found in contracts/util/ABDKMath64x64.sol [Line: 460](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L460)
2107 | 
2108 | 	```solidity
2109 | 	  function log_2 (int128 x) internal pure returns (int128) {
2110 | 	```
2111 | 
2112 | - Found in contracts/util/ABDKMath64x64.sol [Line: 508](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L508)
2113 | 
2114 | 	```solidity
2115 | 	  function exp_2 (int128 x) internal pure returns (int128) {
2116 | 	```
2117 | 
2118 | - Found in contracts/util/ABDKMathQuad.sol [Line: 516](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L516)
2119 | 
2120 | 	```solidity
2121 | 	  function add (bytes16 x, bytes16 y) internal pure returns (bytes16) {
2122 | 	```
2123 | 
2124 | - Found in contracts/util/ABDKMathQuad.sol [Line: 924](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L924)
2125 | 
2126 | 	```solidity
2127 | 	  function log_2 (bytes16 x) internal pure returns (bytes16) {
2128 | 	```
2129 | 
2130 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1001](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1001)
2131 | 
2132 | 	```solidity
2133 | 	  function pow_2 (bytes16 x) internal pure returns (bytes16) {
2134 | 	```
2135 | 
2136 | - Found in contracts/v2/interestRate/BaseInterestRateModel.sol [Line: 19](../tests/2024-07-templegold/protocol/contracts/v2/interestRate/BaseInterestRateModel.sol#L19)
2137 | 
2138 | 	```solidity
2139 | 	    function computeInterestRateImpl(uint256) internal virtual view returns (uint96);
2140 | 	```
2141 | 
2142 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 22](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L22)
2143 | 
2144 | 	```solidity
2145 | 	    function signatureSplit(bytes memory signatures, uint256 pos)
2146 | 	```
2147 | 
2148 | </details>
2149 | 
2150 | 
2151 | 
2152 | ## L-10: Large Numeric Literal
2153 | 
2154 | Large literal values multiples of 10000 can be replaced with scientific notation.Use `e` notation, for example: `1e18`, instead of its full numeric value.
2155 | 
2156 | <details><summary>6 Found Instances</summary>
2157 | 
2158 | 
2159 | - Found in contracts/amo/Ramos.sol [Line: 72](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L72)
2160 | 
2161 | 	```solidity
2162 | 	    uint256 public constant override BPS_PRECISION = 10_000;
2163 | 	```
2164 | 
2165 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 27](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L27)
2166 | 
2167 | 	```solidity
2168 | 	    uint256 public constant override BPS_PRECISION = 10_000;
2169 | 	```
2170 | 
2171 | - Found in contracts/deprecated/TempleStaking.sol [Line: 119](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L119)
2172 | 
2173 | 	```solidity
2174 | 	        emit AccumulationFactorUpdated(_nUnupdatedEpochs, _currentEpoch, accumulationFactor.mul(10000).toUInt());
2175 | 	```
2176 | 
2177 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 36](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L36)
2178 | 
2179 | 	```solidity
2180 | 	    uint256 public constant MAX_SUPPLY = 1_000_000_000 ether; // 1B
2181 | 	```
2182 | 
2183 | - Found in contracts/templegold/TempleGold.sol [Line: 47](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L47)
2184 | 
2185 | 	```solidity
2186 | 	    uint256 public constant MAX_SUPPLY = 1_000_000_000 ether; // 1B
2187 | 	```
2188 | 
2189 | - Found in contracts/templegold/TempleGold.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L49)
2190 | 
2191 | 	```solidity
2192 | 	    uint256 public constant MINIMUM_MINT = 10_000 ether;
2193 | 	```
2194 | 
2195 | </details>
2196 | 
2197 | 
2198 | 
2199 | ## L-11: Literal Instead of Constant
2200 | 
2201 | Define and use `constant` variables instead of using literals. If the same constant literal value is used multiple times, create a constant state variable and reference it throughout the contract.
2202 | 
2203 | <details><summary>712 Found Instances</summary>
2204 | 
2205 | 
2206 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 163](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L163)
2207 | 
2208 | 	```solidity
2209 | 	        uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));
2210 | 	```
2211 | 
2212 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 164](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L164)
2213 | 
2214 | 	```solidity
2215 | 	        uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));
2216 | 	```
2217 | 
2218 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 165](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L165)
2219 | 
2220 | 	```solidity
2221 | 	        require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'UniswapV2: K');
2222 | 	```
2223 | 
2224 | - Found in contracts/deprecated/TempleStaking.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L52)
2225 | 
2226 | 	```solidity
2227 | 	        require(_startTimestamp > (block.timestamp - (24 * 2 * 60 * 60)), "Start timestamp can't be more than 2 days in the past");
2228 | 	```
2229 | 
2230 | - Found in contracts/deprecated/TempleStaking.sol [Line: 100](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L100)
2231 | 
2232 | 	```solidity
2233 | 	            ABDKMath64x64.divu(amountOgTemple, 1e18).mul(_accumulationFactorAt(currentEpoch()))
2234 | 	```
2235 | 
2236 | - Found in contracts/deprecated/TempleStaking.sol [Line: 129](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L129)
2237 | 
2238 | 	```solidity
2239 | 	        amountOgTemple = _overflowSafeMul1e18(ABDKMath64x64.divu(_amountTemple, 1e18).div(accumulationFactor));
2240 | 	```
2241 | 
2242 | - Found in contracts/deprecated/TempleStaking.sol [Line: 159](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L159)
2243 | 
2244 | 	```solidity
2245 | 	        uint256 fractionalDigits = amountFixedPoint.sub(ABDKMath64x64.fromUInt(integralDigits)).mul(ABDKMath64x64.fromUInt(1e18)).toUInt();
2246 | 	```
2247 | 
2248 | - Found in contracts/deprecated/TempleStaking.sol [Line: 160](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L160)
2249 | 
2250 | 	```solidity
2251 | 	        return (integralDigits * 1e18) + fractionalDigits;
2252 | 	```
2253 | 
2254 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 537](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L537)
2255 | 
2256 | 	```solidity
2257 | 	            vestingRate = 1e18;
2258 | 	```
2259 | 
2260 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 539](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L539)
2261 | 
2262 | 	```solidity
2263 | 	            vestingRate = (block.timestamp - _stakeInfo.stakeTime) * 1e18 / vestingPeriod;
2264 | 	```
2265 | 
2266 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 542](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L542)
2267 | 
2268 | 	```solidity
2269 | 	        if (vestingRate == 1e18) { 
2270 | 	```
2271 | 
2272 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 545](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L545)
2273 | 
2274 | 	```solidity
2275 | 	            _perTokenReward = _rewardPerToken() * vestingRate / 1e18;
2276 | 	```
2277 | 
2278 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 549](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L549)
2279 | 
2280 | 	```solidity
2281 | 	            (_balance * (_perTokenReward - userRewardPerTokenPaid[_account][_index])) / 1e18 +
2282 | 	```
2283 | 
2284 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 558](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L558)
2285 | 
2286 | 	```solidity
2287 | 	            vestingRate = 1e18;
2288 | 	```
2289 | 
2290 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 560](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L560)
2291 | 
2292 | 	```solidity
2293 | 	            vestingRate = (block.timestamp - _stakeInfo.stakeTime) * 1e18 / vestingPeriod;
2294 | 	```
2295 | 
2296 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 580](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L580)
2297 | 
2298 | 	```solidity
2299 | 	                rewardData.rewardRate * 1e18)
2300 | 	```
2301 | 
2302 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 680](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L680)
2303 | 
2304 | 	```solidity
2305 | 	                userRewardPerTokenPaid[_account][_index] = vestingRate * uint256(rewardData.rewardPerTokenStored) / 1e18;
2306 | 	```
2307 | 
2308 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 76](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L76)
2309 | 
2310 | 	```solidity
2311 | 	        return existingBalance * (1e18 + (daiSavingsRate * elapsed / 365 days)) / 1e18;
2312 | 	```
2313 | 
2314 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 473](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L473)
2315 | 
2316 | 	```solidity
2317 | 	        if (vestingRate == 1e18) { 
2318 | 	```
2319 | 
2320 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 476](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L476)
2321 | 
2322 | 	```solidity
2323 | 	            _perTokenReward = _rewardPerToken() * vestingRate / 1e18;
2324 | 	```
2325 | 
2326 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 480](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L480)
2327 | 
2328 | 	```solidity
2329 | 	            (_stakeInfo.amount * (_perTokenReward - userRewardPerTokenPaid[_account][_index])) / 1e18 +
2330 | 	```
2331 | 
2332 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 489](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L489)
2333 | 
2334 | 	```solidity
2335 | 	            vestingRate = 1e18;
2336 | 	```
2337 | 
2338 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 491](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L491)
2339 | 
2340 | 	```solidity
2341 | 	            vestingRate = (block.timestamp - _stakeInfo.stakeTime) * 1e18 / vestingPeriod;
2342 | 	```
2343 | 
2344 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 511](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L511)
2345 | 
2346 | 	```solidity
2347 | 	                rewardData.rewardRate * 1e18)
2348 | 	```
2349 | 
2350 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 598](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L598)
2351 | 
2352 | 	```solidity
2353 | 	                userRewardPerTokenPaid[_account][_index] = vestingRate * uint256(rewardData.rewardPerTokenStored) / 1e18;
2354 | 	```
2355 | 
2356 | - Found in contracts/util/ABDKMath64x64.sol [Line: 36](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L36)
2357 | 
2358 | 	```solidity
2359 | 	      require (x >= -0x8000000000000000 && x <= 0x7FFFFFFFFFFFFFFF);
2360 | 	```
2361 | 
2362 | - Found in contracts/util/ABDKMath64x64.sol [Line: 37](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L37)
2363 | 
2364 | 	```solidity
2365 | 	      return int128 (x << 64);
2366 | 	```
2367 | 
2368 | - Found in contracts/util/ABDKMath64x64.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L50)
2369 | 
2370 | 	```solidity
2371 | 	      return int64 (x >> 64);
2372 | 	```
2373 | 
2374 | - Found in contracts/util/ABDKMath64x64.sol [Line: 63](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L63)
2375 | 
2376 | 	```solidity
2377 | 	      require (x <= 0x7FFFFFFFFFFFFFFF);
2378 | 	```
2379 | 
2380 | - Found in contracts/util/ABDKMath64x64.sol [Line: 64](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L64)
2381 | 
2382 | 	```solidity
2383 | 	      return int128 (int256 (x << 64));
2384 | 	```
2385 | 
2386 | - Found in contracts/util/ABDKMath64x64.sol [Line: 78](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L78)
2387 | 
2388 | 	```solidity
2389 | 	      return uint64 (uint128 (x >> 64));
2390 | 	```
2391 | 
2392 | - Found in contracts/util/ABDKMath64x64.sol [Line: 91](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L91)
2393 | 
2394 | 	```solidity
2395 | 	      int256 result = x >> 64;
2396 | 	```
2397 | 
2398 | - Found in contracts/util/ABDKMath64x64.sol [Line: 106](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L106)
2399 | 
2400 | 	```solidity
2401 | 	      return int256 (x) << 64;
2402 | 	```
2403 | 
2404 | - Found in contracts/util/ABDKMath64x64.sol [Line: 149](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L149)
2405 | 
2406 | 	```solidity
2407 | 	      int256 result = int256(x) * y >> 64;
2408 | 	```
2409 | 
2410 | - Found in contracts/util/ABDKMath64x64.sol [Line: 166](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L166)
2411 | 
2412 | 	```solidity
2413 | 	        require (y >= -0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF &&
2414 | 	```
2415 | 
2416 | - Found in contracts/util/ABDKMath64x64.sol [Line: 168](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L168)
2417 | 
2418 | 	```solidity
2419 | 	        return -y << 63;
2420 | 	```
2421 | 
2422 | - Found in contracts/util/ABDKMath64x64.sol [Line: 207](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L207)
2423 | 
2424 | 	```solidity
2425 | 	      uint256 lo = (uint256 (int256 (x)) * (y & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)) >> 64;
2426 | 	```
2427 | 
2428 | - Found in contracts/util/ABDKMath64x64.sol [Line: 208](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L208)
2429 | 
2430 | 	```solidity
2431 | 	      uint256 hi = uint256 (int256 (x)) * (y >> 128);
2432 | 	```
2433 | 
2434 | - Found in contracts/util/ABDKMath64x64.sol [Line: 210](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L210)
2435 | 
2436 | 	```solidity
2437 | 	      require (hi <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
2438 | 	```
2439 | 
2440 | - Found in contracts/util/ABDKMath64x64.sol [Line: 211](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L211)
2441 | 
2442 | 	```solidity
2443 | 	      hi <<= 64;
2444 | 	```
2445 | 
2446 | - Found in contracts/util/ABDKMath64x64.sol [Line: 230](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L230)
2447 | 
2448 | 	```solidity
2449 | 	      int256 result = (int256 (x) << 64) / y;
2450 | 	```
2451 | 
2452 | - Found in contracts/util/ABDKMath64x64.sol [Line: 259](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L259)
2453 | 
2454 | 	```solidity
2455 | 	        require (absoluteResult <= 0x80000000000000000000000000000000);
2456 | 	```
2457 | 
2458 | - Found in contracts/util/ABDKMath64x64.sol [Line: 321](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L321)
2459 | 
2460 | 	```solidity
2461 | 	      int256 result = int256 (0x100000000000000000000000000000000) / x;
2462 | 	```
2463 | 
2464 | - Found in contracts/util/ABDKMath64x64.sol [Line: 372](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L372)
2465 | 
2466 | 	```solidity
2467 | 	      absResult = 0x100000000000000000000000000000000;
2468 | 	```
2469 | 
2470 | - Found in contracts/util/ABDKMath64x64.sol [Line: 374](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L374)
2471 | 
2472 | 	```solidity
2473 | 	      if (absX <= 0x10000000000000000) {
2474 | 	```
2475 | 
2476 | - Found in contracts/util/ABDKMath64x64.sol [Line: 375](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L375)
2477 | 
2478 | 	```solidity
2479 | 	        absX <<= 63;
2480 | 	```
2481 | 
2482 | - Found in contracts/util/ABDKMath64x64.sol [Line: 377](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L377)
2483 | 
2484 | 	```solidity
2485 | 	          if (y & 0x1 != 0) {
2486 | 	```
2487 | 
2488 | - Found in contracts/util/ABDKMath64x64.sol [Line: 378](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L378)
2489 | 
2490 | 	```solidity
2491 | 	            absResult = absResult * absX >> 127;
2492 | 	```
2493 | 
2494 | - Found in contracts/util/ABDKMath64x64.sol [Line: 380](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L380)
2495 | 
2496 | 	```solidity
2497 | 	          absX = absX * absX >> 127;
2498 | 	```
2499 | 
2500 | - Found in contracts/util/ABDKMath64x64.sol [Line: 382](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L382)
2501 | 
2502 | 	```solidity
2503 | 	          if (y & 0x2 != 0) {
2504 | 	```
2505 | 
2506 | - Found in contracts/util/ABDKMath64x64.sol [Line: 383](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L383)
2507 | 
2508 | 	```solidity
2509 | 	            absResult = absResult * absX >> 127;
2510 | 	```
2511 | 
2512 | - Found in contracts/util/ABDKMath64x64.sol [Line: 385](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L385)
2513 | 
2514 | 	```solidity
2515 | 	          absX = absX * absX >> 127;
2516 | 	```
2517 | 
2518 | - Found in contracts/util/ABDKMath64x64.sol [Line: 387](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L387)
2519 | 
2520 | 	```solidity
2521 | 	          if (y & 0x4 != 0) {
2522 | 	```
2523 | 
2524 | - Found in contracts/util/ABDKMath64x64.sol [Line: 388](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L388)
2525 | 
2526 | 	```solidity
2527 | 	            absResult = absResult * absX >> 127;
2528 | 	```
2529 | 
2530 | - Found in contracts/util/ABDKMath64x64.sol [Line: 390](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L390)
2531 | 
2532 | 	```solidity
2533 | 	          absX = absX * absX >> 127;
2534 | 	```
2535 | 
2536 | - Found in contracts/util/ABDKMath64x64.sol [Line: 392](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L392)
2537 | 
2538 | 	```solidity
2539 | 	          if (y & 0x8 != 0) {
2540 | 	```
2541 | 
2542 | - Found in contracts/util/ABDKMath64x64.sol [Line: 393](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L393)
2543 | 
2544 | 	```solidity
2545 | 	            absResult = absResult * absX >> 127;
2546 | 	```
2547 | 
2548 | - Found in contracts/util/ABDKMath64x64.sol [Line: 395](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L395)
2549 | 
2550 | 	```solidity
2551 | 	          absX = absX * absX >> 127;
2552 | 	```
2553 | 
2554 | - Found in contracts/util/ABDKMath64x64.sol [Line: 397](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L397)
2555 | 
2556 | 	```solidity
2557 | 	          y >>= 4;
2558 | 	```
2559 | 
2560 | - Found in contracts/util/ABDKMath64x64.sol [Line: 400](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L400)
2561 | 
2562 | 	```solidity
2563 | 	        absResult >>= 64;
2564 | 	```
2565 | 
2566 | - Found in contracts/util/ABDKMath64x64.sol [Line: 402](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L402)
2567 | 
2568 | 	```solidity
2569 | 	        uint256 absXShift = 63;
2570 | 	```
2571 | 
2572 | - Found in contracts/util/ABDKMath64x64.sol [Line: 403](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L403)
2573 | 
2574 | 	```solidity
2575 | 	        if (absX < 0x1000000000000000000000000) { absX <<= 32; absXShift -= 32; }
2576 | 	```
2577 | 
2578 | - Found in contracts/util/ABDKMath64x64.sol [Line: 404](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L404)
2579 | 
2580 | 	```solidity
2581 | 	        if (absX < 0x10000000000000000000000000000) { absX <<= 16; absXShift -= 16; }
2582 | 	```
2583 | 
2584 | - Found in contracts/util/ABDKMath64x64.sol [Line: 405](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L405)
2585 | 
2586 | 	```solidity
2587 | 	        if (absX < 0x1000000000000000000000000000000) { absX <<= 8; absXShift -= 8; }
2588 | 	```
2589 | 
2590 | - Found in contracts/util/ABDKMath64x64.sol [Line: 406](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L406)
2591 | 
2592 | 	```solidity
2593 | 	        if (absX < 0x10000000000000000000000000000000) { absX <<= 4; absXShift -= 4; }
2594 | 	```
2595 | 
2596 | - Found in contracts/util/ABDKMath64x64.sol [Line: 408](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L408)
2597 | 
2598 | 	```solidity
2599 | 	        if (absX < 0x80000000000000000000000000000000) { absX <<= 1; absXShift -= 1; }
2600 | 	```
2601 | 
2602 | - Found in contracts/util/ABDKMath64x64.sol [Line: 412](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L412)
2603 | 
2604 | 	```solidity
2605 | 	          require (absXShift < 64);
2606 | 	```
2607 | 
2608 | - Found in contracts/util/ABDKMath64x64.sol [Line: 414](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L414)
2609 | 
2610 | 	```solidity
2611 | 	          if (y & 0x1 != 0) {
2612 | 	```
2613 | 
2614 | - Found in contracts/util/ABDKMath64x64.sol [Line: 415](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L415)
2615 | 
2616 | 	```solidity
2617 | 	            absResult = absResult * absX >> 127;
2618 | 	```
2619 | 
2620 | - Found in contracts/util/ABDKMath64x64.sol [Line: 417](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L417)
2621 | 
2622 | 	```solidity
2623 | 	            if (absResult > 0x100000000000000000000000000000000) {
2624 | 	```
2625 | 
2626 | - Found in contracts/util/ABDKMath64x64.sol [Line: 422](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L422)
2627 | 
2628 | 	```solidity
2629 | 	          absX = absX * absX >> 127;
2630 | 	```
2631 | 
2632 | - Found in contracts/util/ABDKMath64x64.sol [Line: 424](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L424)
2633 | 
2634 | 	```solidity
2635 | 	          if (absX >= 0x100000000000000000000000000000000) {
2636 | 	```
2637 | 
2638 | - Found in contracts/util/ABDKMath64x64.sol [Line: 432](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L432)
2639 | 
2640 | 	```solidity
2641 | 	        require (resultShift < 64);
2642 | 	```
2643 | 
2644 | - Found in contracts/util/ABDKMath64x64.sol [Line: 433](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L433)
2645 | 
2646 | 	```solidity
2647 | 	        absResult >>= 64 - resultShift;
2648 | 	```
2649 | 
2650 | - Found in contracts/util/ABDKMath64x64.sol [Line: 450](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L450)
2651 | 
2652 | 	```solidity
2653 | 	      return int128 (sqrtu (uint256 (int256 (x)) << 64));
2654 | 	```
2655 | 
2656 | - Found in contracts/util/ABDKMath64x64.sol [Line: 466](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L466)
2657 | 
2658 | 	```solidity
2659 | 	      if (xc >= 0x10000000000000000) { xc >>= 64; msb += 64; }
2660 | 	```
2661 | 
2662 | - Found in contracts/util/ABDKMath64x64.sol [Line: 467](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L467)
2663 | 
2664 | 	```solidity
2665 | 	      if (xc >= 0x100000000) { xc >>= 32; msb += 32; }
2666 | 	```
2667 | 
2668 | - Found in contracts/util/ABDKMath64x64.sol [Line: 468](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L468)
2669 | 
2670 | 	```solidity
2671 | 	      if (xc >= 0x10000) { xc >>= 16; msb += 16; }
2672 | 	```
2673 | 
2674 | - Found in contracts/util/ABDKMath64x64.sol [Line: 469](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L469)
2675 | 
2676 | 	```solidity
2677 | 	      if (xc >= 0x100) { xc >>= 8; msb += 8; }
2678 | 	```
2679 | 
2680 | - Found in contracts/util/ABDKMath64x64.sol [Line: 470](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L470)
2681 | 
2682 | 	```solidity
2683 | 	      if (xc >= 0x10) { xc >>= 4; msb += 4; }
2684 | 	```
2685 | 
2686 | - Found in contracts/util/ABDKMath64x64.sol [Line: 471](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L471)
2687 | 
2688 | 	```solidity
2689 | 	      if (xc >= 0x4) { xc >>= 2; msb += 2; }
2690 | 	```
2691 | 
2692 | - Found in contracts/util/ABDKMath64x64.sol [Line: 472](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L472)
2693 | 
2694 | 	```solidity
2695 | 	      if (xc >= 0x2) msb += 1;  // No need to shift xc anymore
2696 | 	```
2697 | 
2698 | - Found in contracts/util/ABDKMath64x64.sol [Line: 474](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L474)
2699 | 
2700 | 	```solidity
2701 | 	      int256 result = msb - 64 << 64;
2702 | 	```
2703 | 
2704 | - Found in contracts/util/ABDKMath64x64.sol [Line: 475](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L475)
2705 | 
2706 | 	```solidity
2707 | 	      uint256 ux = uint256 (int256 (x)) << uint256 (127 - msb);
2708 | 	```
2709 | 
2710 | - Found in contracts/util/ABDKMath64x64.sol [Line: 476](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L476)
2711 | 
2712 | 	```solidity
2713 | 	      for (int256 bit = 0x8000000000000000; bit > 0; bit >>= 1) {
2714 | 	```
2715 | 
2716 | - Found in contracts/util/ABDKMath64x64.sol [Line: 478](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L478)
2717 | 
2718 | 	```solidity
2719 | 	        uint256 b = ux >> 255;
2720 | 	```
2721 | 
2722 | - Found in contracts/util/ABDKMath64x64.sol [Line: 479](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L479)
2723 | 
2724 | 	```solidity
2725 | 	        ux >>= 127 + b;
2726 | 	```
2727 | 
2728 | - Found in contracts/util/ABDKMath64x64.sol [Line: 498](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L498)
2729 | 
2730 | 	```solidity
2731 | 	          uint256 (int256 (log_2 (x))) * 0xB17217F7D1CF79ABC9E3B39803F2F6AF >> 128));
2732 | 	```
2733 | 
2734 | - Found in contracts/util/ABDKMath64x64.sol [Line: 510](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L510)
2735 | 
2736 | 	```solidity
2737 | 	      require (x < 0x400000000000000000); // Overflow
2738 | 	```
2739 | 
2740 | - Found in contracts/util/ABDKMath64x64.sol [Line: 512](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L512)
2741 | 
2742 | 	```solidity
2743 | 	      if (x < -0x400000000000000000) return 0; // Underflow
2744 | 	```
2745 | 
2746 | - Found in contracts/util/ABDKMath64x64.sol [Line: 514](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L514)
2747 | 
2748 | 	```solidity
2749 | 	      uint256 result = 0x80000000000000000000000000000000;
2750 | 	```
2751 | 
2752 | - Found in contracts/util/ABDKMath64x64.sol [Line: 516](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L516)
2753 | 
2754 | 	```solidity
2755 | 	      if (x & 0x8000000000000000 > 0)
2756 | 	```
2757 | 
2758 | - Found in contracts/util/ABDKMath64x64.sol [Line: 517](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L517)
2759 | 
2760 | 	```solidity
2761 | 	        result = result * 0x16A09E667F3BCC908B2FB1366EA957D3E >> 128;
2762 | 	```
2763 | 
2764 | - Found in contracts/util/ABDKMath64x64.sol [Line: 519](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L519)
2765 | 
2766 | 	```solidity
2767 | 	        result = result * 0x1306FE0A31B7152DE8D5A46305C85EDEC >> 128;
2768 | 	```
2769 | 
2770 | - Found in contracts/util/ABDKMath64x64.sol [Line: 521](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L521)
2771 | 
2772 | 	```solidity
2773 | 	        result = result * 0x1172B83C7D517ADCDF7C8C50EB14A791F >> 128;
2774 | 	```
2775 | 
2776 | - Found in contracts/util/ABDKMath64x64.sol [Line: 523](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L523)
2777 | 
2778 | 	```solidity
2779 | 	        result = result * 0x10B5586CF9890F6298B92B71842A98363 >> 128;
2780 | 	```
2781 | 
2782 | - Found in contracts/util/ABDKMath64x64.sol [Line: 525](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L525)
2783 | 
2784 | 	```solidity
2785 | 	        result = result * 0x1059B0D31585743AE7C548EB68CA417FD >> 128;
2786 | 	```
2787 | 
2788 | - Found in contracts/util/ABDKMath64x64.sol [Line: 527](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L527)
2789 | 
2790 | 	```solidity
2791 | 	        result = result * 0x102C9A3E778060EE6F7CACA4F7A29BDE8 >> 128;
2792 | 	```
2793 | 
2794 | - Found in contracts/util/ABDKMath64x64.sol [Line: 529](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L529)
2795 | 
2796 | 	```solidity
2797 | 	        result = result * 0x10163DA9FB33356D84A66AE336DCDFA3F >> 128;
2798 | 	```
2799 | 
2800 | - Found in contracts/util/ABDKMath64x64.sol [Line: 531](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L531)
2801 | 
2802 | 	```solidity
2803 | 	        result = result * 0x100B1AFA5ABCBED6129AB13EC11DC9543 >> 128;
2804 | 	```
2805 | 
2806 | - Found in contracts/util/ABDKMath64x64.sol [Line: 533](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L533)
2807 | 
2808 | 	```solidity
2809 | 	        result = result * 0x10058C86DA1C09EA1FF19D294CF2F679B >> 128;
2810 | 	```
2811 | 
2812 | - Found in contracts/util/ABDKMath64x64.sol [Line: 535](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L535)
2813 | 
2814 | 	```solidity
2815 | 	        result = result * 0x1002C605E2E8CEC506D21BFC89A23A00F >> 128;
2816 | 	```
2817 | 
2818 | - Found in contracts/util/ABDKMath64x64.sol [Line: 537](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L537)
2819 | 
2820 | 	```solidity
2821 | 	        result = result * 0x100162F3904051FA128BCA9C55C31E5DF >> 128;
2822 | 	```
2823 | 
2824 | - Found in contracts/util/ABDKMath64x64.sol [Line: 539](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L539)
2825 | 
2826 | 	```solidity
2827 | 	        result = result * 0x1000B175EFFDC76BA38E31671CA939725 >> 128;
2828 | 	```
2829 | 
2830 | - Found in contracts/util/ABDKMath64x64.sol [Line: 541](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L541)
2831 | 
2832 | 	```solidity
2833 | 	        result = result * 0x100058BA01FB9F96D6CACD4B180917C3D >> 128;
2834 | 	```
2835 | 
2836 | - Found in contracts/util/ABDKMath64x64.sol [Line: 543](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L543)
2837 | 
2838 | 	```solidity
2839 | 	        result = result * 0x10002C5CC37DA9491D0985C348C68E7B3 >> 128;
2840 | 	```
2841 | 
2842 | - Found in contracts/util/ABDKMath64x64.sol [Line: 545](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L545)
2843 | 
2844 | 	```solidity
2845 | 	        result = result * 0x1000162E525EE054754457D5995292026 >> 128;
2846 | 	```
2847 | 
2848 | - Found in contracts/util/ABDKMath64x64.sol [Line: 547](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L547)
2849 | 
2850 | 	```solidity
2851 | 	        result = result * 0x10000B17255775C040618BF4A4ADE83FC >> 128;
2852 | 	```
2853 | 
2854 | - Found in contracts/util/ABDKMath64x64.sol [Line: 549](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L549)
2855 | 
2856 | 	```solidity
2857 | 	        result = result * 0x1000058B91B5BC9AE2EED81E9B7D4CFAB >> 128;
2858 | 	```
2859 | 
2860 | - Found in contracts/util/ABDKMath64x64.sol [Line: 551](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L551)
2861 | 
2862 | 	```solidity
2863 | 	        result = result * 0x100002C5C89D5EC6CA4D7C8ACC017B7C9 >> 128;
2864 | 	```
2865 | 
2866 | - Found in contracts/util/ABDKMath64x64.sol [Line: 553](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L553)
2867 | 
2868 | 	```solidity
2869 | 	        result = result * 0x10000162E43F4F831060E02D839A9D16D >> 128;
2870 | 	```
2871 | 
2872 | - Found in contracts/util/ABDKMath64x64.sol [Line: 555](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L555)
2873 | 
2874 | 	```solidity
2875 | 	        result = result * 0x100000B1721BCFC99D9F890EA06911763 >> 128;
2876 | 	```
2877 | 
2878 | - Found in contracts/util/ABDKMath64x64.sol [Line: 557](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L557)
2879 | 
2880 | 	```solidity
2881 | 	        result = result * 0x10000058B90CF1E6D97F9CA14DBCC1628 >> 128;
2882 | 	```
2883 | 
2884 | - Found in contracts/util/ABDKMath64x64.sol [Line: 559](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L559)
2885 | 
2886 | 	```solidity
2887 | 	        result = result * 0x1000002C5C863B73F016468F6BAC5CA2B >> 128;
2888 | 	```
2889 | 
2890 | - Found in contracts/util/ABDKMath64x64.sol [Line: 561](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L561)
2891 | 
2892 | 	```solidity
2893 | 	        result = result * 0x100000162E430E5A18F6119E3C02282A5 >> 128;
2894 | 	```
2895 | 
2896 | - Found in contracts/util/ABDKMath64x64.sol [Line: 563](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L563)
2897 | 
2898 | 	```solidity
2899 | 	        result = result * 0x1000000B1721835514B86E6D96EFD1BFE >> 128;
2900 | 	```
2901 | 
2902 | - Found in contracts/util/ABDKMath64x64.sol [Line: 565](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L565)
2903 | 
2904 | 	```solidity
2905 | 	        result = result * 0x100000058B90C0B48C6BE5DF846C5B2EF >> 128;
2906 | 	```
2907 | 
2908 | - Found in contracts/util/ABDKMath64x64.sol [Line: 567](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L567)
2909 | 
2910 | 	```solidity
2911 | 	        result = result * 0x10000002C5C8601CC6B9E94213C72737A >> 128;
2912 | 	```
2913 | 
2914 | - Found in contracts/util/ABDKMath64x64.sol [Line: 569](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L569)
2915 | 
2916 | 	```solidity
2917 | 	        result = result * 0x1000000162E42FFF037DF38AA2B219F06 >> 128;
2918 | 	```
2919 | 
2920 | - Found in contracts/util/ABDKMath64x64.sol [Line: 571](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L571)
2921 | 
2922 | 	```solidity
2923 | 	        result = result * 0x10000000B17217FBA9C739AA5819F44F9 >> 128;
2924 | 	```
2925 | 
2926 | - Found in contracts/util/ABDKMath64x64.sol [Line: 573](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L573)
2927 | 
2928 | 	```solidity
2929 | 	        result = result * 0x1000000058B90BFCDEE5ACD3C1CEDC823 >> 128;
2930 | 	```
2931 | 
2932 | - Found in contracts/util/ABDKMath64x64.sol [Line: 575](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L575)
2933 | 
2934 | 	```solidity
2935 | 	        result = result * 0x100000002C5C85FE31F35A6A30DA1BE50 >> 128;
2936 | 	```
2937 | 
2938 | - Found in contracts/util/ABDKMath64x64.sol [Line: 577](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L577)
2939 | 
2940 | 	```solidity
2941 | 	        result = result * 0x10000000162E42FF0999CE3541B9FFFCF >> 128;
2942 | 	```
2943 | 
2944 | - Found in contracts/util/ABDKMath64x64.sol [Line: 578](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L578)
2945 | 
2946 | 	```solidity
2947 | 	      if (x & 0x100000000 > 0)
2948 | 	```
2949 | 
2950 | - Found in contracts/util/ABDKMath64x64.sol [Line: 579](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L579)
2951 | 
2952 | 	```solidity
2953 | 	        result = result * 0x100000000B17217F80F4EF5AADDA45554 >> 128;
2954 | 	```
2955 | 
2956 | - Found in contracts/util/ABDKMath64x64.sol [Line: 581](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L581)
2957 | 
2958 | 	```solidity
2959 | 	        result = result * 0x10000000058B90BFBF8479BD5A81B51AD >> 128;
2960 | 	```
2961 | 
2962 | - Found in contracts/util/ABDKMath64x64.sol [Line: 583](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L583)
2963 | 
2964 | 	```solidity
2965 | 	        result = result * 0x1000000002C5C85FDF84BD62AE30A74CC >> 128;
2966 | 	```
2967 | 
2968 | - Found in contracts/util/ABDKMath64x64.sol [Line: 585](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L585)
2969 | 
2970 | 	```solidity
2971 | 	        result = result * 0x100000000162E42FEFB2FED257559BDAA >> 128;
2972 | 	```
2973 | 
2974 | - Found in contracts/util/ABDKMath64x64.sol [Line: 587](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L587)
2975 | 
2976 | 	```solidity
2977 | 	        result = result * 0x1000000000B17217F7D5A7716BBA4A9AE >> 128;
2978 | 	```
2979 | 
2980 | - Found in contracts/util/ABDKMath64x64.sol [Line: 589](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L589)
2981 | 
2982 | 	```solidity
2983 | 	        result = result * 0x100000000058B90BFBE9DDBAC5E109CCE >> 128;
2984 | 	```
2985 | 
2986 | - Found in contracts/util/ABDKMath64x64.sol [Line: 591](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L591)
2987 | 
2988 | 	```solidity
2989 | 	        result = result * 0x10000000002C5C85FDF4B15DE6F17EB0D >> 128;
2990 | 	```
2991 | 
2992 | - Found in contracts/util/ABDKMath64x64.sol [Line: 593](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L593)
2993 | 
2994 | 	```solidity
2995 | 	        result = result * 0x1000000000162E42FEFA494F1478FDE05 >> 128;
2996 | 	```
2997 | 
2998 | - Found in contracts/util/ABDKMath64x64.sol [Line: 595](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L595)
2999 | 
3000 | 	```solidity
3001 | 	        result = result * 0x10000000000B17217F7D20CF927C8E94C >> 128;
3002 | 	```
3003 | 
3004 | - Found in contracts/util/ABDKMath64x64.sol [Line: 597](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L597)
3005 | 
3006 | 	```solidity
3007 | 	        result = result * 0x1000000000058B90BFBE8F71CB4E4B33D >> 128;
3008 | 	```
3009 | 
3010 | - Found in contracts/util/ABDKMath64x64.sol [Line: 599](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L599)
3011 | 
3012 | 	```solidity
3013 | 	        result = result * 0x100000000002C5C85FDF477B662B26945 >> 128;
3014 | 	```
3015 | 
3016 | - Found in contracts/util/ABDKMath64x64.sol [Line: 601](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L601)
3017 | 
3018 | 	```solidity
3019 | 	        result = result * 0x10000000000162E42FEFA3AE53369388C >> 128;
3020 | 	```
3021 | 
3022 | - Found in contracts/util/ABDKMath64x64.sol [Line: 603](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L603)
3023 | 
3024 | 	```solidity
3025 | 	        result = result * 0x100000000000B17217F7D1D351A389D40 >> 128;
3026 | 	```
3027 | 
3028 | - Found in contracts/util/ABDKMath64x64.sol [Line: 605](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L605)
3029 | 
3030 | 	```solidity
3031 | 	        result = result * 0x10000000000058B90BFBE8E8B2D3D4EDE >> 128;
3032 | 	```
3033 | 
3034 | - Found in contracts/util/ABDKMath64x64.sol [Line: 607](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L607)
3035 | 
3036 | 	```solidity
3037 | 	        result = result * 0x1000000000002C5C85FDF4741BEA6E77E >> 128;
3038 | 	```
3039 | 
3040 | - Found in contracts/util/ABDKMath64x64.sol [Line: 609](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L609)
3041 | 
3042 | 	```solidity
3043 | 	        result = result * 0x100000000000162E42FEFA39FE95583C2 >> 128;
3044 | 	```
3045 | 
3046 | - Found in contracts/util/ABDKMath64x64.sol [Line: 610](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L610)
3047 | 
3048 | 	```solidity
3049 | 	      if (x & 0x10000 > 0)
3050 | 	```
3051 | 
3052 | - Found in contracts/util/ABDKMath64x64.sol [Line: 611](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L611)
3053 | 
3054 | 	```solidity
3055 | 	        result = result * 0x1000000000000B17217F7D1CFB72B45E1 >> 128;
3056 | 	```
3057 | 
3058 | - Found in contracts/util/ABDKMath64x64.sol [Line: 613](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L613)
3059 | 
3060 | 	```solidity
3061 | 	        result = result * 0x100000000000058B90BFBE8E7CC35C3F0 >> 128;
3062 | 	```
3063 | 
3064 | - Found in contracts/util/ABDKMath64x64.sol [Line: 615](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L615)
3065 | 
3066 | 	```solidity
3067 | 	        result = result * 0x10000000000002C5C85FDF473E242EA38 >> 128;
3068 | 	```
3069 | 
3070 | - Found in contracts/util/ABDKMath64x64.sol [Line: 617](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L617)
3071 | 
3072 | 	```solidity
3073 | 	        result = result * 0x1000000000000162E42FEFA39F02B772C >> 128;
3074 | 	```
3075 | 
3076 | - Found in contracts/util/ABDKMath64x64.sol [Line: 619](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L619)
3077 | 
3078 | 	```solidity
3079 | 	        result = result * 0x10000000000000B17217F7D1CF7D83C1A >> 128;
3080 | 	```
3081 | 
3082 | - Found in contracts/util/ABDKMath64x64.sol [Line: 621](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L621)
3083 | 
3084 | 	```solidity
3085 | 	        result = result * 0x1000000000000058B90BFBE8E7BDCBE2E >> 128;
3086 | 	```
3087 | 
3088 | - Found in contracts/util/ABDKMath64x64.sol [Line: 623](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L623)
3089 | 
3090 | 	```solidity
3091 | 	        result = result * 0x100000000000002C5C85FDF473DEA871F >> 128;
3092 | 	```
3093 | 
3094 | - Found in contracts/util/ABDKMath64x64.sol [Line: 625](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L625)
3095 | 
3096 | 	```solidity
3097 | 	        result = result * 0x10000000000000162E42FEFA39EF44D91 >> 128;
3098 | 	```
3099 | 
3100 | - Found in contracts/util/ABDKMath64x64.sol [Line: 626](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L626)
3101 | 
3102 | 	```solidity
3103 | 	      if (x & 0x100 > 0)
3104 | 	```
3105 | 
3106 | - Found in contracts/util/ABDKMath64x64.sol [Line: 627](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L627)
3107 | 
3108 | 	```solidity
3109 | 	        result = result * 0x100000000000000B17217F7D1CF79E949 >> 128;
3110 | 	```
3111 | 
3112 | - Found in contracts/util/ABDKMath64x64.sol [Line: 629](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L629)
3113 | 
3114 | 	```solidity
3115 | 	        result = result * 0x10000000000000058B90BFBE8E7BCE544 >> 128;
3116 | 	```
3117 | 
3118 | - Found in contracts/util/ABDKMath64x64.sol [Line: 631](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L631)
3119 | 
3120 | 	```solidity
3121 | 	        result = result * 0x1000000000000002C5C85FDF473DE6ECA >> 128;
3122 | 	```
3123 | 
3124 | - Found in contracts/util/ABDKMath64x64.sol [Line: 633](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L633)
3125 | 
3126 | 	```solidity
3127 | 	        result = result * 0x100000000000000162E42FEFA39EF366F >> 128;
3128 | 	```
3129 | 
3130 | - Found in contracts/util/ABDKMath64x64.sol [Line: 634](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L634)
3131 | 
3132 | 	```solidity
3133 | 	      if (x & 0x10 > 0)
3134 | 	```
3135 | 
3136 | - Found in contracts/util/ABDKMath64x64.sol [Line: 635](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L635)
3137 | 
3138 | 	```solidity
3139 | 	        result = result * 0x1000000000000000B17217F7D1CF79AFA >> 128;
3140 | 	```
3141 | 
3142 | - Found in contracts/util/ABDKMath64x64.sol [Line: 636](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L636)
3143 | 
3144 | 	```solidity
3145 | 	      if (x & 0x8 > 0)
3146 | 	```
3147 | 
3148 | - Found in contracts/util/ABDKMath64x64.sol [Line: 637](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L637)
3149 | 
3150 | 	```solidity
3151 | 	        result = result * 0x100000000000000058B90BFBE8E7BCD6D >> 128;
3152 | 	```
3153 | 
3154 | - Found in contracts/util/ABDKMath64x64.sol [Line: 638](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L638)
3155 | 
3156 | 	```solidity
3157 | 	      if (x & 0x4 > 0)
3158 | 	```
3159 | 
3160 | - Found in contracts/util/ABDKMath64x64.sol [Line: 639](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L639)
3161 | 
3162 | 	```solidity
3163 | 	        result = result * 0x10000000000000002C5C85FDF473DE6B2 >> 128;
3164 | 	```
3165 | 
3166 | - Found in contracts/util/ABDKMath64x64.sol [Line: 640](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L640)
3167 | 
3168 | 	```solidity
3169 | 	      if (x & 0x2 > 0)
3170 | 	```
3171 | 
3172 | - Found in contracts/util/ABDKMath64x64.sol [Line: 641](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L641)
3173 | 
3174 | 	```solidity
3175 | 	        result = result * 0x1000000000000000162E42FEFA39EF358 >> 128;
3176 | 	```
3177 | 
3178 | - Found in contracts/util/ABDKMath64x64.sol [Line: 642](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L642)
3179 | 
3180 | 	```solidity
3181 | 	      if (x & 0x1 > 0)
3182 | 	```
3183 | 
3184 | - Found in contracts/util/ABDKMath64x64.sol [Line: 643](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L643)
3185 | 
3186 | 	```solidity
3187 | 	        result = result * 0x10000000000000000B17217F7D1CF79AB >> 128;
3188 | 	```
3189 | 
3190 | - Found in contracts/util/ABDKMath64x64.sol [Line: 645](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L645)
3191 | 
3192 | 	```solidity
3193 | 	      result >>= uint256 (int256 (63 - (x >> 64)));
3194 | 	```
3195 | 
3196 | - Found in contracts/util/ABDKMath64x64.sol [Line: 660](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L660)
3197 | 
3198 | 	```solidity
3199 | 	      require (x < 0x400000000000000000); // Overflow
3200 | 	```
3201 | 
3202 | - Found in contracts/util/ABDKMath64x64.sol [Line: 662](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L662)
3203 | 
3204 | 	```solidity
3205 | 	      if (x < -0x400000000000000000) return 0; // Underflow
3206 | 	```
3207 | 
3208 | - Found in contracts/util/ABDKMath64x64.sol [Line: 665](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L665)
3209 | 
3210 | 	```solidity
3211 | 	          int128 (int256 (x) * 0x171547652B82FE1777D0FFDA0D23A7D12 >> 128));
3212 | 	```
3213 | 
3214 | - Found in contracts/util/ABDKMath64x64.sol [Line: 683](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L683)
3215 | 
3216 | 	```solidity
3217 | 	      if (x <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
3218 | 	```
3219 | 
3220 | - Found in contracts/util/ABDKMath64x64.sol [Line: 684](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L684)
3221 | 
3222 | 	```solidity
3223 | 	        result = (x << 64) / y;
3224 | 	```
3225 | 
3226 | - Found in contracts/util/ABDKMath64x64.sol [Line: 686](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L686)
3227 | 
3228 | 	```solidity
3229 | 	        uint256 msb = 192;
3230 | 	```
3231 | 
3232 | - Found in contracts/util/ABDKMath64x64.sol [Line: 687](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L687)
3233 | 
3234 | 	```solidity
3235 | 	        uint256 xc = x >> 192;
3236 | 	```
3237 | 
3238 | - Found in contracts/util/ABDKMath64x64.sol [Line: 688](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L688)
3239 | 
3240 | 	```solidity
3241 | 	        if (xc >= 0x100000000) { xc >>= 32; msb += 32; }
3242 | 	```
3243 | 
3244 | - Found in contracts/util/ABDKMath64x64.sol [Line: 689](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L689)
3245 | 
3246 | 	```solidity
3247 | 	        if (xc >= 0x10000) { xc >>= 16; msb += 16; }
3248 | 	```
3249 | 
3250 | - Found in contracts/util/ABDKMath64x64.sol [Line: 690](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L690)
3251 | 
3252 | 	```solidity
3253 | 	        if (xc >= 0x100) { xc >>= 8; msb += 8; }
3254 | 	```
3255 | 
3256 | - Found in contracts/util/ABDKMath64x64.sol [Line: 691](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L691)
3257 | 
3258 | 	```solidity
3259 | 	        if (xc >= 0x10) { xc >>= 4; msb += 4; }
3260 | 	```
3261 | 
3262 | - Found in contracts/util/ABDKMath64x64.sol [Line: 692](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L692)
3263 | 
3264 | 	```solidity
3265 | 	        if (xc >= 0x4) { xc >>= 2; msb += 2; }
3266 | 	```
3267 | 
3268 | - Found in contracts/util/ABDKMath64x64.sol [Line: 693](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L693)
3269 | 
3270 | 	```solidity
3271 | 	        if (xc >= 0x2) msb += 1;  // No need to shift xc anymore
3272 | 	```
3273 | 
3274 | - Found in contracts/util/ABDKMath64x64.sol [Line: 695](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L695)
3275 | 
3276 | 	```solidity
3277 | 	        result = (x << 255 - msb) / ((y - 1 >> msb - 191) + 1);
3278 | 	```
3279 | 
3280 | - Found in contracts/util/ABDKMath64x64.sol [Line: 696](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L696)
3281 | 
3282 | 	```solidity
3283 | 	        require (result <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
3284 | 	```
3285 | 
3286 | - Found in contracts/util/ABDKMath64x64.sol [Line: 698](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L698)
3287 | 
3288 | 	```solidity
3289 | 	        uint256 hi = result * (y >> 128);
3290 | 	```
3291 | 
3292 | - Found in contracts/util/ABDKMath64x64.sol [Line: 699](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L699)
3293 | 
3294 | 	```solidity
3295 | 	        uint256 lo = result * (y & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
3296 | 	```
3297 | 
3298 | - Found in contracts/util/ABDKMath64x64.sol [Line: 701](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L701)
3299 | 
3300 | 	```solidity
3301 | 	        uint256 xh = x >> 192;
3302 | 	```
3303 | 
3304 | - Found in contracts/util/ABDKMath64x64.sol [Line: 702](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L702)
3305 | 
3306 | 	```solidity
3307 | 	        uint256 xl = x << 64;
3308 | 	```
3309 | 
3310 | - Found in contracts/util/ABDKMath64x64.sol [Line: 706](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L706)
3311 | 
3312 | 	```solidity
3313 | 	        lo = hi << 128;
3314 | 	```
3315 | 
3316 | - Found in contracts/util/ABDKMath64x64.sol [Line: 710](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L710)
3317 | 
3318 | 	```solidity
3319 | 	        assert (xh == hi >> 128);
3320 | 	```
3321 | 
3322 | - Found in contracts/util/ABDKMath64x64.sol [Line: 715](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L715)
3323 | 
3324 | 	```solidity
3325 | 	      require (result <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
3326 | 	```
3327 | 
3328 | - Found in contracts/util/ABDKMath64x64.sol [Line: 733](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L733)
3329 | 
3330 | 	```solidity
3331 | 	        if (xx >= 0x100000000000000000000000000000000) { xx >>= 128; r <<= 64; }
3332 | 	```
3333 | 
3334 | - Found in contracts/util/ABDKMath64x64.sol [Line: 734](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L734)
3335 | 
3336 | 	```solidity
3337 | 	        if (xx >= 0x10000000000000000) { xx >>= 64; r <<= 32; }
3338 | 	```
3339 | 
3340 | - Found in contracts/util/ABDKMath64x64.sol [Line: 735](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L735)
3341 | 
3342 | 	```solidity
3343 | 	        if (xx >= 0x100000000) { xx >>= 32; r <<= 16; }
3344 | 	```
3345 | 
3346 | - Found in contracts/util/ABDKMath64x64.sol [Line: 736](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L736)
3347 | 
3348 | 	```solidity
3349 | 	        if (xx >= 0x10000) { xx >>= 16; r <<= 8; }
3350 | 	```
3351 | 
3352 | - Found in contracts/util/ABDKMath64x64.sol [Line: 737](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L737)
3353 | 
3354 | 	```solidity
3355 | 	        if (xx >= 0x100) { xx >>= 8; r <<= 4; }
3356 | 	```
3357 | 
3358 | - Found in contracts/util/ABDKMath64x64.sol [Line: 738](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L738)
3359 | 
3360 | 	```solidity
3361 | 	        if (xx >= 0x10) { xx >>= 4; r <<= 2; }
3362 | 	```
3363 | 
3364 | - Found in contracts/util/ABDKMath64x64.sol [Line: 739](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L739)
3365 | 
3366 | 	```solidity
3367 | 	        if (xx >= 0x8) { r <<= 1; }
3368 | 	```
3369 | 
3370 | - Found in contracts/util/ABDKMathQuad.sol [Line: 54](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L54)
3371 | 
3372 | 	```solidity
3373 | 	        if (msb < 112) result <<= 112 - msb;
3374 | 	```
3375 | 
3376 | - Found in contracts/util/ABDKMathQuad.sol [Line: 55](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L55)
3377 | 
3378 | 	```solidity
3379 | 	        else if (msb > 112) result >>= msb - 112;
3380 | 	```
3381 | 
3382 | - Found in contracts/util/ABDKMathQuad.sol [Line: 57](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L57)
3383 | 
3384 | 	```solidity
3385 | 	        result = result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 16383 + msb << 112;
3386 | 	```
3387 | 
3388 | - Found in contracts/util/ABDKMathQuad.sol [Line: 58](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L58)
3389 | 
3390 | 	```solidity
3391 | 	        if (x < 0) result |= 0x80000000000000000000000000000000;
3392 | 	```
3393 | 
3394 | - Found in contracts/util/ABDKMathQuad.sol [Line: 74](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L74)
3395 | 
3396 | 	```solidity
3397 | 	      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;
3398 | 	```
3399 | 
3400 | - Found in contracts/util/ABDKMathQuad.sol [Line: 76](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L76)
3401 | 
3402 | 	```solidity
3403 | 	      require (exponent <= 16638); // Overflow
3404 | 	```
3405 | 
3406 | - Found in contracts/util/ABDKMathQuad.sol [Line: 77](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L77)
3407 | 
3408 | 	```solidity
3409 | 	      if (exponent < 16383) return 0; // Underflow
3410 | 	```
3411 | 
3412 | - Found in contracts/util/ABDKMathQuad.sol [Line: 79](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L79)
3413 | 
3414 | 	```solidity
3415 | 	      uint256 result = uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
3416 | 	```
3417 | 
3418 | - Found in contracts/util/ABDKMathQuad.sol [Line: 80](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L80)
3419 | 
3420 | 	```solidity
3421 | 	        0x10000000000000000000000000000;
3422 | 	```
3423 | 
3424 | - Found in contracts/util/ABDKMathQuad.sol [Line: 82](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L82)
3425 | 
3426 | 	```solidity
3427 | 	      if (exponent < 16495) result >>= 16495 - exponent;
3428 | 	```
3429 | 
3430 | - Found in contracts/util/ABDKMathQuad.sol [Line: 83](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L83)
3431 | 
3432 | 	```solidity
3433 | 	      else if (exponent > 16495) result <<= exponent - 16495;
3434 | 	```
3435 | 
3436 | - Found in contracts/util/ABDKMathQuad.sol [Line: 85](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L85)
3437 | 
3438 | 	```solidity
3439 | 	      if (uint128 (x) >= 0x80000000000000000000000000000000) { // Negative
3440 | 	```
3441 | 
3442 | - Found in contracts/util/ABDKMathQuad.sol [Line: 86](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L86)
3443 | 
3444 | 	```solidity
3445 | 	        require (result <= 0x8000000000000000000000000000000000000000000000000000000000000000);
3446 | 	```
3447 | 
3448 | - Found in contracts/util/ABDKMathQuad.sol [Line: 89](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L89)
3449 | 
3450 | 	```solidity
3451 | 	        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
3452 | 	```
3453 | 
3454 | - Found in contracts/util/ABDKMathQuad.sol [Line: 108](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L108)
3455 | 
3456 | 	```solidity
3457 | 	        if (msb < 112) result <<= 112 - msb;
3458 | 	```
3459 | 
3460 | - Found in contracts/util/ABDKMathQuad.sol [Line: 109](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L109)
3461 | 
3462 | 	```solidity
3463 | 	        else if (msb > 112) result >>= msb - 112;
3464 | 	```
3465 | 
3466 | - Found in contracts/util/ABDKMathQuad.sol [Line: 111](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L111)
3467 | 
3468 | 	```solidity
3469 | 	        result = result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 16383 + msb << 112;
3470 | 	```
3471 | 
3472 | - Found in contracts/util/ABDKMathQuad.sol [Line: 129](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L129)
3473 | 
3474 | 	```solidity
3475 | 	      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;
3476 | 	```
3477 | 
3478 | - Found in contracts/util/ABDKMathQuad.sol [Line: 131](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L131)
3479 | 
3480 | 	```solidity
3481 | 	      if (exponent < 16383) return 0; // Underflow
3482 | 	```
3483 | 
3484 | - Found in contracts/util/ABDKMathQuad.sol [Line: 133](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L133)
3485 | 
3486 | 	```solidity
3487 | 	      require (uint128 (x) < 0x80000000000000000000000000000000); // Negative
3488 | 	```
3489 | 
3490 | - Found in contracts/util/ABDKMathQuad.sol [Line: 135](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L135)
3491 | 
3492 | 	```solidity
3493 | 	      require (exponent <= 16638); // Overflow
3494 | 	```
3495 | 
3496 | - Found in contracts/util/ABDKMathQuad.sol [Line: 136](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L136)
3497 | 
3498 | 	```solidity
3499 | 	      uint256 result = uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
3500 | 	```
3501 | 
3502 | - Found in contracts/util/ABDKMathQuad.sol [Line: 137](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L137)
3503 | 
3504 | 	```solidity
3505 | 	        0x10000000000000000000000000000;
3506 | 	```
3507 | 
3508 | - Found in contracts/util/ABDKMathQuad.sol [Line: 139](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L139)
3509 | 
3510 | 	```solidity
3511 | 	      if (exponent < 16495) result >>= 16495 - exponent;
3512 | 	```
3513 | 
3514 | - Found in contracts/util/ABDKMathQuad.sol [Line: 140](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L140)
3515 | 
3516 | 	```solidity
3517 | 	      else if (exponent > 16495) result <<= exponent - 16495;
3518 | 	```
3519 | 
3520 | - Found in contracts/util/ABDKMathQuad.sol [Line: 161](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L161)
3521 | 
3522 | 	```solidity
3523 | 	        if (msb < 112) result <<= 112 - msb;
3524 | 	```
3525 | 
3526 | - Found in contracts/util/ABDKMathQuad.sol [Line: 162](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L162)
3527 | 
3528 | 	```solidity
3529 | 	        else if (msb > 112) result >>= msb - 112;
3530 | 	```
3531 | 
3532 | - Found in contracts/util/ABDKMathQuad.sol [Line: 164](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L164)
3533 | 
3534 | 	```solidity
3535 | 	        result = result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 16255 + msb << 112;
3536 | 	```
3537 | 
3538 | - Found in contracts/util/ABDKMathQuad.sol [Line: 165](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L165)
3539 | 
3540 | 	```solidity
3541 | 	        if (x < 0) result |= 0x80000000000000000000000000000000;
3542 | 	```
3543 | 
3544 | - Found in contracts/util/ABDKMathQuad.sol [Line: 181](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L181)
3545 | 
3546 | 	```solidity
3547 | 	      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;
3548 | 	```
3549 | 
3550 | - Found in contracts/util/ABDKMathQuad.sol [Line: 184](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L184)
3551 | 
3552 | 	```solidity
3553 | 	      if (exponent < 16255) return 0; // Underflow
3554 | 	```
3555 | 
3556 | - Found in contracts/util/ABDKMathQuad.sol [Line: 186](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L186)
3557 | 
3558 | 	```solidity
3559 | 	      uint256 result = uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
3560 | 	```
3561 | 
3562 | - Found in contracts/util/ABDKMathQuad.sol [Line: 187](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L187)
3563 | 
3564 | 	```solidity
3565 | 	        0x10000000000000000000000000000;
3566 | 	```
3567 | 
3568 | - Found in contracts/util/ABDKMathQuad.sol [Line: 189](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L189)
3569 | 
3570 | 	```solidity
3571 | 	      if (exponent < 16367) result >>= 16367 - exponent;
3572 | 	```
3573 | 
3574 | - Found in contracts/util/ABDKMathQuad.sol [Line: 190](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L190)
3575 | 
3576 | 	```solidity
3577 | 	      else if (exponent > 16367) result <<= exponent - 16367;
3578 | 	```
3579 | 
3580 | - Found in contracts/util/ABDKMathQuad.sol [Line: 192](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L192)
3581 | 
3582 | 	```solidity
3583 | 	      if (uint128 (x) >= 0x80000000000000000000000000000000) { // Negative
3584 | 	```
3585 | 
3586 | - Found in contracts/util/ABDKMathQuad.sol [Line: 193](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L193)
3587 | 
3588 | 	```solidity
3589 | 	        require (result <= 0x8000000000000000000000000000000000000000000000000000000000000000);
3590 | 	```
3591 | 
3592 | - Found in contracts/util/ABDKMathQuad.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L196)
3593 | 
3594 | 	```solidity
3595 | 	        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
3596 | 	```
3597 | 
3598 | - Found in contracts/util/ABDKMathQuad.sol [Line: 217](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L217)
3599 | 
3600 | 	```solidity
3601 | 	        if (msb < 112) result <<= 112 - msb;
3602 | 	```
3603 | 
3604 | - Found in contracts/util/ABDKMathQuad.sol [Line: 218](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L218)
3605 | 
3606 | 	```solidity
3607 | 	        else if (msb > 112) result >>= msb - 112;
3608 | 	```
3609 | 
3610 | - Found in contracts/util/ABDKMathQuad.sol [Line: 220](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L220)
3611 | 
3612 | 	```solidity
3613 | 	        result = result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 16319 + msb << 112;
3614 | 	```
3615 | 
3616 | - Found in contracts/util/ABDKMathQuad.sol [Line: 221](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L221)
3617 | 
3618 | 	```solidity
3619 | 	        if (x < 0) result |= 0x80000000000000000000000000000000;
3620 | 	```
3621 | 
3622 | - Found in contracts/util/ABDKMathQuad.sol [Line: 237](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L237)
3623 | 
3624 | 	```solidity
3625 | 	      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;
3626 | 	```
3627 | 
3628 | - Found in contracts/util/ABDKMathQuad.sol [Line: 240](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L240)
3629 | 
3630 | 	```solidity
3631 | 	      if (exponent < 16319) return 0; // Underflow
3632 | 	```
3633 | 
3634 | - Found in contracts/util/ABDKMathQuad.sol [Line: 242](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L242)
3635 | 
3636 | 	```solidity
3637 | 	      uint256 result = uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
3638 | 	```
3639 | 
3640 | - Found in contracts/util/ABDKMathQuad.sol [Line: 243](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L243)
3641 | 
3642 | 	```solidity
3643 | 	        0x10000000000000000000000000000;
3644 | 	```
3645 | 
3646 | - Found in contracts/util/ABDKMathQuad.sol [Line: 245](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L245)
3647 | 
3648 | 	```solidity
3649 | 	      if (exponent < 16431) result >>= 16431 - exponent;
3650 | 	```
3651 | 
3652 | - Found in contracts/util/ABDKMathQuad.sol [Line: 246](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L246)
3653 | 
3654 | 	```solidity
3655 | 	      else if (exponent > 16431) result <<= exponent - 16431;
3656 | 	```
3657 | 
3658 | - Found in contracts/util/ABDKMathQuad.sol [Line: 248](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L248)
3659 | 
3660 | 	```solidity
3661 | 	      if (uint128 (x) >= 0x80000000000000000000000000000000) { // Negative
3662 | 	```
3663 | 
3664 | - Found in contracts/util/ABDKMathQuad.sol [Line: 249](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L249)
3665 | 
3666 | 	```solidity
3667 | 	        require (result <= 0x80000000000000000000000000000000);
3668 | 	```
3669 | 
3670 | - Found in contracts/util/ABDKMathQuad.sol [Line: 252](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L252)
3671 | 
3672 | 	```solidity
3673 | 	        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
3674 | 	```
3675 | 
3676 | - Found in contracts/util/ABDKMathQuad.sol [Line: 266](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L266)
3677 | 
3678 | 	```solidity
3679 | 	      bool negative = x & 0x8000000000000000000000000000000000000000000000000000000000000000 > 0;
3680 | 	```
3681 | 
3682 | - Found in contracts/util/ABDKMathQuad.sol [Line: 268](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L268)
3683 | 
3684 | 	```solidity
3685 | 	      uint256 exponent = uint256 (x) >> 236 & 0x7FFFF;
3686 | 	```
3687 | 
3688 | - Found in contracts/util/ABDKMathQuad.sol [Line: 269](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L269)
3689 | 
3690 | 	```solidity
3691 | 	      uint256 significand = uint256 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3692 | 	```
3693 | 
3694 | - Found in contracts/util/ABDKMathQuad.sol [Line: 271](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L271)
3695 | 
3696 | 	```solidity
3697 | 	      if (exponent == 0x7FFFF) {
3698 | 	```
3699 | 
3700 | - Found in contracts/util/ABDKMathQuad.sol [Line: 278](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L278)
3701 | 
3702 | 	```solidity
3703 | 	      else if (exponent < 245649)
3704 | 	```
3705 | 
3706 | - Found in contracts/util/ABDKMathQuad.sol [Line: 284](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L284)
3707 | 
3708 | 	```solidity
3709 | 	        significand >>= 124;
3710 | 	```
3711 | 
3712 | - Found in contracts/util/ABDKMathQuad.sol [Line: 285](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L285)
3713 | 
3714 | 	```solidity
3715 | 	        exponent -= 245760;
3716 | 	```
3717 | 
3718 | - Found in contracts/util/ABDKMathQuad.sol [Line: 288](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L288)
3719 | 
3720 | 	```solidity
3721 | 	      uint128 result = uint128 (significand | exponent << 112);
3722 | 	```
3723 | 
3724 | - Found in contracts/util/ABDKMathQuad.sol [Line: 289](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L289)
3725 | 
3726 | 	```solidity
3727 | 	      if (negative) result |= 0x80000000000000000000000000000000;
3728 | 	```
3729 | 
3730 | - Found in contracts/util/ABDKMathQuad.sol [Line: 303](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L303)
3731 | 
3732 | 	```solidity
3733 | 	      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;
3734 | 	```
3735 | 
3736 | - Found in contracts/util/ABDKMathQuad.sol [Line: 305](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L305)
3737 | 
3738 | 	```solidity
3739 | 	      uint256 result = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3740 | 	```
3741 | 
3742 | - Found in contracts/util/ABDKMathQuad.sol [Line: 307](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L307)
3743 | 
3744 | 	```solidity
3745 | 	      if (exponent == 0x7FFF) exponent = 0x7FFFF; // Infinity or NaN
3746 | 	```
3747 | 
3748 | - Found in contracts/util/ABDKMathQuad.sol [Line: 311](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L311)
3749 | 
3750 | 	```solidity
3751 | 	          result = result << 236 - msb & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3752 | 	```
3753 | 
3754 | - Found in contracts/util/ABDKMathQuad.sol [Line: 312](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L312)
3755 | 
3756 | 	```solidity
3757 | 	          exponent = 245649 + msb;
3758 | 	```
3759 | 
3760 | - Found in contracts/util/ABDKMathQuad.sol [Line: 315](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L315)
3761 | 
3762 | 	```solidity
3763 | 	        result <<= 124;
3764 | 	```
3765 | 
3766 | - Found in contracts/util/ABDKMathQuad.sol [Line: 316](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L316)
3767 | 
3768 | 	```solidity
3769 | 	        exponent += 245760;
3770 | 	```
3771 | 
3772 | - Found in contracts/util/ABDKMathQuad.sol [Line: 319](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L319)
3773 | 
3774 | 	```solidity
3775 | 	      result |= exponent << 236;
3776 | 	```
3777 | 
3778 | - Found in contracts/util/ABDKMathQuad.sol [Line: 320](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L320)
3779 | 
3780 | 	```solidity
3781 | 	      if (uint128 (x) >= 0x80000000000000000000000000000000)
3782 | 	```
3783 | 
3784 | - Found in contracts/util/ABDKMathQuad.sol [Line: 321](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L321)
3785 | 
3786 | 	```solidity
3787 | 	        result |= 0x8000000000000000000000000000000000000000000000000000000000000000;
3788 | 	```
3789 | 
3790 | - Found in contracts/util/ABDKMathQuad.sol [Line: 335](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L335)
3791 | 
3792 | 	```solidity
3793 | 	      uint256 exponent = uint64 (x) >> 52 & 0x7FF;
3794 | 	```
3795 | 
3796 | - Found in contracts/util/ABDKMathQuad.sol [Line: 339](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L339)
3797 | 
3798 | 	```solidity
3799 | 	      if (exponent == 0x7FF) exponent = 0x7FFF; // Infinity or NaN
3800 | 	```
3801 | 
3802 | - Found in contracts/util/ABDKMathQuad.sol [Line: 343](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L343)
3803 | 
3804 | 	```solidity
3805 | 	          result = result << 112 - msb & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3806 | 	```
3807 | 
3808 | - Found in contracts/util/ABDKMathQuad.sol [Line: 344](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L344)
3809 | 
3810 | 	```solidity
3811 | 	          exponent = 15309 + msb;
3812 | 	```
3813 | 
3814 | - Found in contracts/util/ABDKMathQuad.sol [Line: 347](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L347)
3815 | 
3816 | 	```solidity
3817 | 	        result <<= 60;
3818 | 	```
3819 | 
3820 | - Found in contracts/util/ABDKMathQuad.sol [Line: 348](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L348)
3821 | 
3822 | 	```solidity
3823 | 	        exponent += 15360;
3824 | 	```
3825 | 
3826 | - Found in contracts/util/ABDKMathQuad.sol [Line: 351](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L351)
3827 | 
3828 | 	```solidity
3829 | 	      result |= exponent << 112;
3830 | 	```
3831 | 
3832 | - Found in contracts/util/ABDKMathQuad.sol [Line: 352](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L352)
3833 | 
3834 | 	```solidity
3835 | 	      if (x & 0x8000000000000000 > 0)
3836 | 	```
3837 | 
3838 | - Found in contracts/util/ABDKMathQuad.sol [Line: 353](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L353)
3839 | 
3840 | 	```solidity
3841 | 	        result |= 0x80000000000000000000000000000000;
3842 | 	```
3843 | 
3844 | - Found in contracts/util/ABDKMathQuad.sol [Line: 367](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L367)
3845 | 
3846 | 	```solidity
3847 | 	      bool negative = uint128 (x) >= 0x80000000000000000000000000000000;
3848 | 	```
3849 | 
3850 | - Found in contracts/util/ABDKMathQuad.sol [Line: 369](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L369)
3851 | 
3852 | 	```solidity
3853 | 	      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;
3854 | 	```
3855 | 
3856 | - Found in contracts/util/ABDKMathQuad.sol [Line: 370](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L370)
3857 | 
3858 | 	```solidity
3859 | 	      uint256 significand = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3860 | 	```
3861 | 
3862 | - Found in contracts/util/ABDKMathQuad.sol [Line: 372](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L372)
3863 | 
3864 | 	```solidity
3865 | 	      if (exponent == 0x7FFF) {
3866 | 	```
3867 | 
3868 | - Found in contracts/util/ABDKMathQuad.sol [Line: 375](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L375)
3869 | 
3870 | 	```solidity
3871 | 	            bytes8 (0xFFF0000000000000) : // -Infinity
3872 | 	```
3873 | 
3874 | - Found in contracts/util/ABDKMathQuad.sol [Line: 376](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L376)
3875 | 
3876 | 	```solidity
3877 | 	            bytes8 (0x7FF0000000000000); // Infinity
3878 | 	```
3879 | 
3880 | - Found in contracts/util/ABDKMathQuad.sol [Line: 381](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L381)
3881 | 
3882 | 	```solidity
3883 | 	            bytes8 (0xFFF0000000000000) : // -Infinity
3884 | 	```
3885 | 
3886 | - Found in contracts/util/ABDKMathQuad.sol [Line: 382](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L382)
3887 | 
3888 | 	```solidity
3889 | 	            bytes8 (0x7FF0000000000000); // Infinity
3890 | 	```
3891 | 
3892 | - Found in contracts/util/ABDKMathQuad.sol [Line: 383](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L383)
3893 | 
3894 | 	```solidity
3895 | 	      else if (exponent < 15309)
3896 | 	```
3897 | 
3898 | - Found in contracts/util/ABDKMathQuad.sol [Line: 385](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L385)
3899 | 
3900 | 	```solidity
3901 | 	            bytes8 (0x8000000000000000) : // -0
3902 | 	```
3903 | 
3904 | - Found in contracts/util/ABDKMathQuad.sol [Line: 388](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L388)
3905 | 
3906 | 	```solidity
3907 | 	        significand = (significand | 0x10000000000000000000000000000) >> 15421 - exponent;
3908 | 	```
3909 | 
3910 | - Found in contracts/util/ABDKMathQuad.sol [Line: 391](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L391)
3911 | 
3912 | 	```solidity
3913 | 	        significand >>= 60;
3914 | 	```
3915 | 
3916 | - Found in contracts/util/ABDKMathQuad.sol [Line: 392](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L392)
3917 | 
3918 | 	```solidity
3919 | 	        exponent -= 15360;
3920 | 	```
3921 | 
3922 | - Found in contracts/util/ABDKMathQuad.sol [Line: 395](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L395)
3923 | 
3924 | 	```solidity
3925 | 	      uint64 result = uint64 (significand | exponent << 52);
3926 | 	```
3927 | 
3928 | - Found in contracts/util/ABDKMathQuad.sol [Line: 396](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L396)
3929 | 
3930 | 	```solidity
3931 | 	      if (negative) result |= 0x8000000000000000;
3932 | 	```
3933 | 
3934 | - Found in contracts/util/ABDKMathQuad.sol [Line: 410](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L410)
3935 | 
3936 | 	```solidity
3937 | 	      return uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF >
3938 | 	```
3939 | 
3940 | - Found in contracts/util/ABDKMathQuad.sol [Line: 411](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L411)
3941 | 
3942 | 	```solidity
3943 | 	        0x7FFF0000000000000000000000000000;
3944 | 	```
3945 | 
3946 | - Found in contracts/util/ABDKMathQuad.sol [Line: 424](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L424)
3947 | 
3948 | 	```solidity
3949 | 	      return uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ==
3950 | 	```
3951 | 
3952 | - Found in contracts/util/ABDKMathQuad.sol [Line: 425](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L425)
3953 | 
3954 | 	```solidity
3955 | 	        0x7FFF0000000000000000000000000000;
3956 | 	```
3957 | 
3958 | - Found in contracts/util/ABDKMathQuad.sol [Line: 438](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L438)
3959 | 
3960 | 	```solidity
3961 | 	      uint128 absoluteX = uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3962 | 	```
3963 | 
3964 | - Found in contracts/util/ABDKMathQuad.sol [Line: 440](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L440)
3965 | 
3966 | 	```solidity
3967 | 	      require (absoluteX <= 0x7FFF0000000000000000000000000000); // Not NaN
3968 | 	```
3969 | 
3970 | - Found in contracts/util/ABDKMathQuad.sol [Line: 443](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L443)
3971 | 
3972 | 	```solidity
3973 | 	      else if (uint128 (x) >= 0x80000000000000000000000000000000) return -1;
3974 | 	```
3975 | 
3976 | - Found in contracts/util/ABDKMathQuad.sol [Line: 458](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L458)
3977 | 
3978 | 	```solidity
3979 | 	      uint128 absoluteX = uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3980 | 	```
3981 | 
3982 | - Found in contracts/util/ABDKMathQuad.sol [Line: 460](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L460)
3983 | 
3984 | 	```solidity
3985 | 	      require (absoluteX <= 0x7FFF0000000000000000000000000000); // Not NaN
3986 | 	```
3987 | 
3988 | - Found in contracts/util/ABDKMathQuad.sol [Line: 462](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L462)
3989 | 
3990 | 	```solidity
3991 | 	      uint128 absoluteY = uint128 (y) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3992 | 	```
3993 | 
3994 | - Found in contracts/util/ABDKMathQuad.sol [Line: 464](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L464)
3995 | 
3996 | 	```solidity
3997 | 	      require (absoluteY <= 0x7FFF0000000000000000000000000000); // Not NaN
3998 | 	```
3999 | 
4000 | - Found in contracts/util/ABDKMathQuad.sol [Line: 467](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L467)
4001 | 
4002 | 	```solidity
4003 | 	      require (x != y || absoluteX < 0x7FFF0000000000000000000000000000);
4004 | 	```
4005 | 
4006 | - Found in contracts/util/ABDKMathQuad.sol [Line: 471](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L471)
4007 | 
4008 | 	```solidity
4009 | 	        bool negativeX = uint128 (x) >= 0x80000000000000000000000000000000;
4010 | 	```
4011 | 
4012 | - Found in contracts/util/ABDKMathQuad.sol [Line: 472](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L472)
4013 | 
4014 | 	```solidity
4015 | 	        bool negativeY = uint128 (y) >= 0x80000000000000000000000000000000;
4016 | 	```
4017 | 
4018 | - Found in contracts/util/ABDKMathQuad.sol [Line: 496](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L496)
4019 | 
4020 | 	```solidity
4021 | 	        return uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF <
4022 | 	```
4023 | 
4024 | - Found in contracts/util/ABDKMathQuad.sol [Line: 497](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L497)
4025 | 
4026 | 	```solidity
4027 | 	          0x7FFF0000000000000000000000000000;
4028 | 	```
4029 | 
4030 | - Found in contracts/util/ABDKMathQuad.sol [Line: 518](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L518)
4031 | 
4032 | 	```solidity
4033 | 	      uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;
4034 | 	```
4035 | 
4036 | - Found in contracts/util/ABDKMathQuad.sol [Line: 519](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L519)
4037 | 
4038 | 	```solidity
4039 | 	      uint256 yExponent = uint128 (y) >> 112 & 0x7FFF;
4040 | 	```
4041 | 
4042 | - Found in contracts/util/ABDKMathQuad.sol [Line: 521](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L521)
4043 | 
4044 | 	```solidity
4045 | 	      if (xExponent == 0x7FFF) {
4046 | 	```
4047 | 
4048 | - Found in contracts/util/ABDKMathQuad.sol [Line: 522](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L522)
4049 | 
4050 | 	```solidity
4051 | 	        if (yExponent == 0x7FFF) { 
4052 | 	```
4053 | 
4054 | - Found in contracts/util/ABDKMathQuad.sol [Line: 526](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L526)
4055 | 
4056 | 	```solidity
4057 | 	      } else if (yExponent == 0x7FFF) return y;
4058 | 	```
4059 | 
4060 | - Found in contracts/util/ABDKMathQuad.sol [Line: 528](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L528)
4061 | 
4062 | 	```solidity
4063 | 	        bool xSign = uint128 (x) >= 0x80000000000000000000000000000000;
4064 | 	```
4065 | 
4066 | - Found in contracts/util/ABDKMathQuad.sol [Line: 529](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L529)
4067 | 
4068 | 	```solidity
4069 | 	        uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4070 | 	```
4071 | 
4072 | - Found in contracts/util/ABDKMathQuad.sol [Line: 531](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L531)
4073 | 
4074 | 	```solidity
4075 | 	        else xSignifier |= 0x10000000000000000000000000000;
4076 | 	```
4077 | 
4078 | - Found in contracts/util/ABDKMathQuad.sol [Line: 533](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L533)
4079 | 
4080 | 	```solidity
4081 | 	        bool ySign = uint128 (y) >= 0x80000000000000000000000000000000;
4082 | 	```
4083 | 
4084 | - Found in contracts/util/ABDKMathQuad.sol [Line: 534](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L534)
4085 | 
4086 | 	```solidity
4087 | 	        uint256 ySignifier = uint128 (y) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4088 | 	```
4089 | 
4090 | - Found in contracts/util/ABDKMathQuad.sol [Line: 536](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L536)
4091 | 
4092 | 	```solidity
4093 | 	        else ySignifier |= 0x10000000000000000000000000000;
4094 | 	```
4095 | 
4096 | - Found in contracts/util/ABDKMathQuad.sol [Line: 544](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L544)
4097 | 
4098 | 	```solidity
4099 | 	            if (delta > 112) return x;
4100 | 	```
4101 | 
4102 | - Found in contracts/util/ABDKMathQuad.sol [Line: 546](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L546)
4103 | 
4104 | 	```solidity
4105 | 	            else if (delta < -112) return y;
4106 | 	```
4107 | 
4108 | - Found in contracts/util/ABDKMathQuad.sol [Line: 554](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L554)
4109 | 
4110 | 	```solidity
4111 | 	            if (xSignifier >= 0x20000000000000000000000000000) {
4112 | 	```
4113 | 
4114 | - Found in contracts/util/ABDKMathQuad.sol [Line: 559](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L559)
4115 | 
4116 | 	```solidity
4117 | 	            if (xExponent == 0x7FFF)
4118 | 	```
4119 | 
4120 | - Found in contracts/util/ABDKMathQuad.sol [Line: 562](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L562)
4121 | 
4122 | 	```solidity
4123 | 	              if (xSignifier < 0x10000000000000000000000000000) xExponent = 0;
4124 | 	```
4125 | 
4126 | - Found in contracts/util/ABDKMathQuad.sol [Line: 563](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L563)
4127 | 
4128 | 	```solidity
4129 | 	              else xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4130 | 	```
4131 | 
4132 | - Found in contracts/util/ABDKMathQuad.sol [Line: 566](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L566)
4133 | 
4134 | 	```solidity
4135 | 	                  (xSign ? 0x80000000000000000000000000000000 : 0) |
4136 | 	```
4137 | 
4138 | - Found in contracts/util/ABDKMathQuad.sol [Line: 567](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L567)
4139 | 
4140 | 	```solidity
4141 | 	                  (xExponent << 112) |
4142 | 	```
4143 | 
4144 | - Found in contracts/util/ABDKMathQuad.sol [Line: 579](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L579)
4145 | 
4146 | 	```solidity
4147 | 	            if (delta > 112) ySignifier = 1;
4148 | 	```
4149 | 
4150 | - Found in contracts/util/ABDKMathQuad.sol [Line: 581](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L581)
4151 | 
4152 | 	```solidity
4153 | 	            else if (delta < -112) xSignifier = 1;
4154 | 	```
4155 | 
4156 | - Found in contracts/util/ABDKMathQuad.sol [Line: 595](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L595)
4157 | 
4158 | 	```solidity
4159 | 	            if (msb == 113) {
4160 | 	```
4161 | 
4162 | - Found in contracts/util/ABDKMathQuad.sol [Line: 596](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L596)
4163 | 
4164 | 	```solidity
4165 | 	              xSignifier = xSignifier >> 1 & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4166 | 	```
4167 | 
4168 | - Found in contracts/util/ABDKMathQuad.sol [Line: 598](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L598)
4169 | 
4170 | 	```solidity
4171 | 	            } else if (msb < 112) {
4172 | 	```
4173 | 
4174 | - Found in contracts/util/ABDKMathQuad.sol [Line: 599](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L599)
4175 | 
4176 | 	```solidity
4177 | 	              uint256 shift = 112 - msb;
4178 | 	```
4179 | 
4180 | - Found in contracts/util/ABDKMathQuad.sol [Line: 601](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L601)
4181 | 
4182 | 	```solidity
4183 | 	                xSignifier = xSignifier << shift & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4184 | 	```
4185 | 
4186 | - Found in contracts/util/ABDKMathQuad.sol [Line: 607](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L607)
4187 | 
4188 | 	```solidity
4189 | 	            } else xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4190 | 	```
4191 | 
4192 | - Found in contracts/util/ABDKMathQuad.sol [Line: 609](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L609)
4193 | 
4194 | 	```solidity
4195 | 	            if (xExponent == 0x7FFF)
4196 | 	```
4197 | 
4198 | - Found in contracts/util/ABDKMathQuad.sol [Line: 612](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L612)
4199 | 
4200 | 	```solidity
4201 | 	                (xSign ? 0x80000000000000000000000000000000 : 0) |
4202 | 	```
4203 | 
4204 | - Found in contracts/util/ABDKMathQuad.sol [Line: 613](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L613)
4205 | 
4206 | 	```solidity
4207 | 	                (xExponent << 112) |
4208 | 	```
4209 | 
4210 | - Found in contracts/util/ABDKMathQuad.sol [Line: 637](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L637)
4211 | 
4212 | 	```solidity
4213 | 	      return add (x, y ^ 0x80000000000000000000000000000000);
4214 | 	```
4215 | 
4216 | - Found in contracts/util/ABDKMathQuad.sol [Line: 662](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L662)
4217 | 
4218 | 	```solidity
4219 | 	      uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;
4220 | 	```
4221 | 
4222 | - Found in contracts/util/ABDKMathQuad.sol [Line: 663](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L663)
4223 | 
4224 | 	```solidity
4225 | 	      uint256 yExponent = uint128 (y) >> 112 & 0x7FFF;
4226 | 	```
4227 | 
4228 | - Found in contracts/util/ABDKMathQuad.sol [Line: 665](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L665)
4229 | 
4230 | 	```solidity
4231 | 	      if (xExponent == 0x7FFF) {
4232 | 	```
4233 | 
4234 | - Found in contracts/util/ABDKMathQuad.sol [Line: 666](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L666)
4235 | 
4236 | 	```solidity
4237 | 	        if (yExponent == 0x7FFF) {
4238 | 	```
4239 | 
4240 | - Found in contracts/util/ABDKMathQuad.sol [Line: 667](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L667)
4241 | 
4242 | 	```solidity
4243 | 	          if (x == y) return x ^ y & 0x80000000000000000000000000000000;
4244 | 	```
4245 | 
4246 | - Found in contracts/util/ABDKMathQuad.sol [Line: 668](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L668)
4247 | 
4248 | 	```solidity
4249 | 	          else if (x ^ y == 0x80000000000000000000000000000000) return x | y;
4250 | 	```
4251 | 
4252 | - Found in contracts/util/ABDKMathQuad.sol [Line: 671](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L671)
4253 | 
4254 | 	```solidity
4255 | 	          if (y & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) return NaN;
4256 | 	```
4257 | 
4258 | - Found in contracts/util/ABDKMathQuad.sol [Line: 672](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L672)
4259 | 
4260 | 	```solidity
4261 | 	          else return x ^ y & 0x80000000000000000000000000000000;
4262 | 	```
4263 | 
4264 | - Found in contracts/util/ABDKMathQuad.sol [Line: 674](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L674)
4265 | 
4266 | 	```solidity
4267 | 	      } else if (yExponent == 0x7FFF) {
4268 | 	```
4269 | 
4270 | - Found in contracts/util/ABDKMathQuad.sol [Line: 675](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L675)
4271 | 
4272 | 	```solidity
4273 | 	          if (x & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) return NaN;
4274 | 	```
4275 | 
4276 | - Found in contracts/util/ABDKMathQuad.sol [Line: 676](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L676)
4277 | 
4278 | 	```solidity
4279 | 	          else return y ^ x & 0x80000000000000000000000000000000;
4280 | 	```
4281 | 
4282 | - Found in contracts/util/ABDKMathQuad.sol [Line: 678](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L678)
4283 | 
4284 | 	```solidity
4285 | 	        uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4286 | 	```
4287 | 
4288 | - Found in contracts/util/ABDKMathQuad.sol [Line: 680](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L680)
4289 | 
4290 | 	```solidity
4291 | 	        else xSignifier |= 0x10000000000000000000000000000;
4292 | 	```
4293 | 
4294 | - Found in contracts/util/ABDKMathQuad.sol [Line: 682](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L682)
4295 | 
4296 | 	```solidity
4297 | 	        uint256 ySignifier = uint128 (y) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4298 | 	```
4299 | 
4300 | - Found in contracts/util/ABDKMathQuad.sol [Line: 684](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L684)
4301 | 
4302 | 	```solidity
4303 | 	        else ySignifier |= 0x10000000000000000000000000000;
4304 | 	```
4305 | 
4306 | - Found in contracts/util/ABDKMathQuad.sol [Line: 688](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L688)
4307 | 
4308 | 	```solidity
4309 | 	          return (x ^ y) & 0x80000000000000000000000000000000 > 0 ?
4310 | 	```
4311 | 
4312 | - Found in contracts/util/ABDKMathQuad.sol [Line: 694](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L694)
4313 | 
4314 | 	```solidity
4315 | 	          xSignifier >= 0x200000000000000000000000000000000000000000000000000000000 ? 225 :
4316 | 	```
4317 | 
4318 | - Found in contracts/util/ABDKMathQuad.sol [Line: 698](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L698)
4319 | 
4320 | 	```solidity
4321 | 	        if (xExponent + msb < 16496) { // Underflow
4322 | 	```
4323 | 
4324 | - Found in contracts/util/ABDKMathQuad.sol [Line: 702](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L702)
4325 | 
4326 | 	```solidity
4327 | 	          if (xExponent < 16496)
4328 | 	```
4329 | 
4330 | - Found in contracts/util/ABDKMathQuad.sol [Line: 703](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L703)
4331 | 
4332 | 	```solidity
4333 | 	            xSignifier >>= 16496 - xExponent;
4334 | 	```
4335 | 
4336 | - Found in contracts/util/ABDKMathQuad.sol [Line: 704](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L704)
4337 | 
4338 | 	```solidity
4339 | 	          else if (xExponent > 16496)
4340 | 	```
4341 | 
4342 | - Found in contracts/util/ABDKMathQuad.sol [Line: 705](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L705)
4343 | 
4344 | 	```solidity
4345 | 	            xSignifier <<= xExponent - 16496;
4346 | 	```
4347 | 
4348 | - Found in contracts/util/ABDKMathQuad.sol [Line: 708](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L708)
4349 | 
4350 | 	```solidity
4351 | 	          xExponent = 0x7FFF;
4352 | 	```
4353 | 
4354 | - Found in contracts/util/ABDKMathQuad.sol [Line: 711](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L711)
4355 | 
4356 | 	```solidity
4357 | 	          if (msb > 112)
4358 | 	```
4359 | 
4360 | - Found in contracts/util/ABDKMathQuad.sol [Line: 712](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L712)
4361 | 
4362 | 	```solidity
4363 | 	            xSignifier >>= msb - 112;
4364 | 	```
4365 | 
4366 | - Found in contracts/util/ABDKMathQuad.sol [Line: 713](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L713)
4367 | 
4368 | 	```solidity
4369 | 	          else if (msb < 112)
4370 | 	```
4371 | 
4372 | - Found in contracts/util/ABDKMathQuad.sol [Line: 714](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L714)
4373 | 
4374 | 	```solidity
4375 | 	            xSignifier <<= 112 - msb;
4376 | 	```
4377 | 
4378 | - Found in contracts/util/ABDKMathQuad.sol [Line: 716](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L716)
4379 | 
4380 | 	```solidity
4381 | 	          xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4382 | 	```
4383 | 
4384 | - Found in contracts/util/ABDKMathQuad.sol [Line: 721](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L721)
4385 | 
4386 | 	```solidity
4387 | 	        return bytes16 (uint128 (uint128 ((x ^ y) & 0x80000000000000000000000000000000) |
4388 | 	```
4389 | 
4390 | - Found in contracts/util/ABDKMathQuad.sol [Line: 722](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L722)
4391 | 
4392 | 	```solidity
4393 | 	            xExponent << 112 | xSignifier));
4394 | 	```
4395 | 
4396 | - Found in contracts/util/ABDKMathQuad.sol [Line: 763](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L763)
4397 | 
4398 | 	```solidity
4399 | 	      uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;
4400 | 	```
4401 | 
4402 | - Found in contracts/util/ABDKMathQuad.sol [Line: 764](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L764)
4403 | 
4404 | 	```solidity
4405 | 	      uint256 yExponent = uint128 (y) >> 112 & 0x7FFF;
4406 | 	```
4407 | 
4408 | - Found in contracts/util/ABDKMathQuad.sol [Line: 766](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L766)
4409 | 
4410 | 	```solidity
4411 | 	      if (xExponent == 0x7FFF) {
4412 | 	```
4413 | 
4414 | - Found in contracts/util/ABDKMathQuad.sol [Line: 767](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L767)
4415 | 
4416 | 	```solidity
4417 | 	        if (yExponent == 0x7FFF) return NaN;
4418 | 	```
4419 | 
4420 | - Found in contracts/util/ABDKMathQuad.sol [Line: 768](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L768)
4421 | 
4422 | 	```solidity
4423 | 	        else return x ^ y & 0x80000000000000000000000000000000;
4424 | 	```
4425 | 
4426 | - Found in contracts/util/ABDKMathQuad.sol [Line: 769](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L769)
4427 | 
4428 | 	```solidity
4429 | 	      } else if (yExponent == 0x7FFF) {
4430 | 	```
4431 | 
4432 | - Found in contracts/util/ABDKMathQuad.sol [Line: 771](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L771)
4433 | 
4434 | 	```solidity
4435 | 	        else return POSITIVE_ZERO | (x ^ y) & 0x80000000000000000000000000000000;
4436 | 	```
4437 | 
4438 | - Found in contracts/util/ABDKMathQuad.sol [Line: 772](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L772)
4439 | 
4440 | 	```solidity
4441 | 	      } else if (y & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) {
4442 | 	```
4443 | 
4444 | - Found in contracts/util/ABDKMathQuad.sol [Line: 773](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L773)
4445 | 
4446 | 	```solidity
4447 | 	        if (x & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) return NaN;
4448 | 	```
4449 | 
4450 | - Found in contracts/util/ABDKMathQuad.sol [Line: 774](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L774)
4451 | 
4452 | 	```solidity
4453 | 	        else return POSITIVE_INFINITY | (x ^ y) & 0x80000000000000000000000000000000;
4454 | 	```
4455 | 
4456 | - Found in contracts/util/ABDKMathQuad.sol [Line: 776](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L776)
4457 | 
4458 | 	```solidity
4459 | 	        uint256 ySignifier = uint128 (y) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4460 | 	```
4461 | 
4462 | - Found in contracts/util/ABDKMathQuad.sol [Line: 778](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L778)
4463 | 
4464 | 	```solidity
4465 | 	        else ySignifier |= 0x10000000000000000000000000000;
4466 | 	```
4467 | 
4468 | - Found in contracts/util/ABDKMathQuad.sol [Line: 780](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L780)
4469 | 
4470 | 	```solidity
4471 | 	        uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4472 | 	```
4473 | 
4474 | - Found in contracts/util/ABDKMathQuad.sol [Line: 783](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L783)
4475 | 
4476 | 	```solidity
4477 | 	            uint shift = 226 - mostSignificantBit (xSignifier);
4478 | 	```
4479 | 
4480 | - Found in contracts/util/ABDKMathQuad.sol [Line: 788](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L788)
4481 | 
4482 | 	```solidity
4483 | 	            yExponent += shift - 114;
4484 | 	```
4485 | 
4486 | - Found in contracts/util/ABDKMathQuad.sol [Line: 792](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L792)
4487 | 
4488 | 	```solidity
4489 | 	          xSignifier = (xSignifier | 0x10000000000000000000000000000) << 114;
4490 | 	```
4491 | 
4492 | - Found in contracts/util/ABDKMathQuad.sol [Line: 797](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L797)
4493 | 
4494 | 	```solidity
4495 | 	          return (x ^ y) & 0x80000000000000000000000000000000 > 0 ?
4496 | 	```
4497 | 
4498 | - Found in contracts/util/ABDKMathQuad.sol [Line: 800](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L800)
4499 | 
4500 | 	```solidity
4501 | 	        assert (xSignifier >= 0x1000000000000000000000000000);
4502 | 	```
4503 | 
4504 | - Found in contracts/util/ABDKMathQuad.sol [Line: 803](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L803)
4505 | 
4506 | 	```solidity
4507 | 	          xSignifier >= 0x80000000000000000000000000000 ? mostSignificantBit (xSignifier) :
4508 | 	```
4509 | 
4510 | - Found in contracts/util/ABDKMathQuad.sol [Line: 804](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L804)
4511 | 
4512 | 	```solidity
4513 | 	          xSignifier >= 0x40000000000000000000000000000 ? 114 :
4514 | 	```
4515 | 
4516 | - Found in contracts/util/ABDKMathQuad.sol [Line: 805](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L805)
4517 | 
4518 | 	```solidity
4519 | 	          xSignifier >= 0x20000000000000000000000000000 ? 113 : 112;
4520 | 	```
4521 | 
4522 | - Found in contracts/util/ABDKMathQuad.sol [Line: 808](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L808)
4523 | 
4524 | 	```solidity
4525 | 	          xExponent = 0x7FFF;
4526 | 	```
4527 | 
4528 | - Found in contracts/util/ABDKMathQuad.sol [Line: 810](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L810)
4529 | 
4530 | 	```solidity
4531 | 	        } else if (xExponent + msb + 16380  < yExponent) { // Underflow
4532 | 	```
4533 | 
4534 | - Found in contracts/util/ABDKMathQuad.sol [Line: 814](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L814)
4535 | 
4536 | 	```solidity
4537 | 	          if (xExponent + 16380 > yExponent)
4538 | 	```
4539 | 
4540 | - Found in contracts/util/ABDKMathQuad.sol [Line: 815](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L815)
4541 | 
4542 | 	```solidity
4543 | 	            xSignifier <<= xExponent + 16380 - yExponent;
4544 | 	```
4545 | 
4546 | - Found in contracts/util/ABDKMathQuad.sol [Line: 816](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L816)
4547 | 
4548 | 	```solidity
4549 | 	          else if (xExponent + 16380 < yExponent)
4550 | 	```
4551 | 
4552 | - Found in contracts/util/ABDKMathQuad.sol [Line: 817](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L817)
4553 | 
4554 | 	```solidity
4555 | 	            xSignifier >>= yExponent - xExponent - 16380;
4556 | 	```
4557 | 
4558 | - Found in contracts/util/ABDKMathQuad.sol [Line: 821](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L821)
4559 | 
4560 | 	```solidity
4561 | 	          if (msb > 112)
4562 | 	```
4563 | 
4564 | - Found in contracts/util/ABDKMathQuad.sol [Line: 822](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L822)
4565 | 
4566 | 	```solidity
4567 | 	            xSignifier >>= msb - 112;
4568 | 	```
4569 | 
4570 | - Found in contracts/util/ABDKMathQuad.sol [Line: 824](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L824)
4571 | 
4572 | 	```solidity
4573 | 	          xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4574 | 	```
4575 | 
4576 | - Found in contracts/util/ABDKMathQuad.sol [Line: 829](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L829)
4577 | 
4578 | 	```solidity
4579 | 	        return bytes16 (uint128 (uint128 ((x ^ y) & 0x80000000000000000000000000000000) |
4580 | 	```
4581 | 
4582 | - Found in contracts/util/ABDKMathQuad.sol [Line: 830](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L830)
4583 | 
4584 | 	```solidity
4585 | 	            xExponent << 112 | xSignifier));
4586 | 	```
4587 | 
4588 | - Found in contracts/util/ABDKMathQuad.sol [Line: 843](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L843)
4589 | 
4590 | 	```solidity
4591 | 	      return x ^ 0x80000000000000000000000000000000;
4592 | 	```
4593 | 
4594 | - Found in contracts/util/ABDKMathQuad.sol [Line: 855](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L855)
4595 | 
4596 | 	```solidity
4597 | 	      return x & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4598 | 	```
4599 | 
4600 | - Found in contracts/util/ABDKMathQuad.sol [Line: 867](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L867)
4601 | 
4602 | 	```solidity
4603 | 	      if (uint128 (x) >  0x80000000000000000000000000000000) return NaN;
4604 | 	```
4605 | 
4606 | - Found in contracts/util/ABDKMathQuad.sol [Line: 869](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L869)
4607 | 
4608 | 	```solidity
4609 | 	        uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;
4610 | 	```
4611 | 
4612 | - Found in contracts/util/ABDKMathQuad.sol [Line: 870](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L870)
4613 | 
4614 | 	```solidity
4615 | 	        if (xExponent == 0x7FFF) return x;
4616 | 	```
4617 | 
4618 | - Found in contracts/util/ABDKMathQuad.sol [Line: 872](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L872)
4619 | 
4620 | 	```solidity
4621 | 	          uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4622 | 	```
4623 | 
4624 | - Found in contracts/util/ABDKMathQuad.sol [Line: 874](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L874)
4625 | 
4626 | 	```solidity
4627 | 	          else xSignifier |= 0x10000000000000000000000000000;
4628 | 	```
4629 | 
4630 | - Found in contracts/util/ABDKMathQuad.sol [Line: 879](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L879)
4631 | 
4632 | 	```solidity
4633 | 	          xExponent = xExponent + 16383 >> 1;
4634 | 	```
4635 | 
4636 | - Found in contracts/util/ABDKMathQuad.sol [Line: 882](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L882)
4637 | 
4638 | 	```solidity
4639 | 	            if (xSignifier >= 0x10000000000000000000000000000)
4640 | 	```
4641 | 
4642 | - Found in contracts/util/ABDKMathQuad.sol [Line: 883](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L883)
4643 | 
4644 | 	```solidity
4645 | 	              xSignifier <<= 113;
4646 | 	```
4647 | 
4648 | - Found in contracts/util/ABDKMathQuad.sol [Line: 886](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L886)
4649 | 
4650 | 	```solidity
4651 | 	              uint256 shift = (226 - msb) & 0xFE;
4652 | 	```
4653 | 
4654 | - Found in contracts/util/ABDKMathQuad.sol [Line: 888](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L888)
4655 | 
4656 | 	```solidity
4657 | 	              xExponent -= shift - 112 >> 1;
4658 | 	```
4659 | 
4660 | - Found in contracts/util/ABDKMathQuad.sol [Line: 891](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L891)
4661 | 
4662 | 	```solidity
4663 | 	            if (xSignifier >= 0x10000000000000000000000000000)
4664 | 	```
4665 | 
4666 | - Found in contracts/util/ABDKMathQuad.sol [Line: 892](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L892)
4667 | 
4668 | 	```solidity
4669 | 	              xSignifier <<= 112;
4670 | 	```
4671 | 
4672 | - Found in contracts/util/ABDKMathQuad.sol [Line: 895](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L895)
4673 | 
4674 | 	```solidity
4675 | 	              uint256 shift = (225 - msb) & 0xFE;
4676 | 	```
4677 | 
4678 | - Found in contracts/util/ABDKMathQuad.sol [Line: 897](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L897)
4679 | 
4680 | 	```solidity
4681 | 	              xExponent -= shift - 112 >> 1;
4682 | 	```
4683 | 
4684 | - Found in contracts/util/ABDKMathQuad.sol [Line: 901](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L901)
4685 | 
4686 | 	```solidity
4687 | 	          uint256 r = 0x10000000000000000000000000000;
4688 | 	```
4689 | 
4690 | - Found in contracts/util/ABDKMathQuad.sol [Line: 912](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L912)
4691 | 
4692 | 	```solidity
4693 | 	          return bytes16 (uint128 (xExponent << 112 | r & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF));
4694 | 	```
4695 | 
4696 | - Found in contracts/util/ABDKMathQuad.sol [Line: 926](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L926)
4697 | 
4698 | 	```solidity
4699 | 	      if (uint128 (x) > 0x80000000000000000000000000000000) return NaN;
4700 | 	```
4701 | 
4702 | - Found in contracts/util/ABDKMathQuad.sol [Line: 927](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L927)
4703 | 
4704 | 	```solidity
4705 | 	      else if (x == 0x3FFF0000000000000000000000000000) return POSITIVE_ZERO; 
4706 | 	```
4707 | 
4708 | - Found in contracts/util/ABDKMathQuad.sol [Line: 929](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L929)
4709 | 
4710 | 	```solidity
4711 | 	        uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;
4712 | 	```
4713 | 
4714 | - Found in contracts/util/ABDKMathQuad.sol [Line: 930](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L930)
4715 | 
4716 | 	```solidity
4717 | 	        if (xExponent == 0x7FFF) return x;
4718 | 	```
4719 | 
4720 | - Found in contracts/util/ABDKMathQuad.sol [Line: 932](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L932)
4721 | 
4722 | 	```solidity
4723 | 	          uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4724 | 	```
4725 | 
4726 | - Found in contracts/util/ABDKMathQuad.sol [Line: 934](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L934)
4727 | 
4728 | 	```solidity
4729 | 	          else xSignifier |= 0x10000000000000000000000000000;
4730 | 	```
4731 | 
4732 | - Found in contracts/util/ABDKMathQuad.sol [Line: 939](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L939)
4733 | 
4734 | 	```solidity
4735 | 	          uint256 resultExponent = 16495;
4736 | 	```
4737 | 
4738 | - Found in contracts/util/ABDKMathQuad.sol [Line: 942](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L942)
4739 | 
4740 | 	```solidity
4741 | 	          if (xExponent >= 0x3FFF) {
4742 | 	```
4743 | 
4744 | - Found in contracts/util/ABDKMathQuad.sol [Line: 944](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L944)
4745 | 
4746 | 	```solidity
4747 | 	            resultSignifier = xExponent - 0x3FFF;
4748 | 	```
4749 | 
4750 | - Found in contracts/util/ABDKMathQuad.sol [Line: 945](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L945)
4751 | 
4752 | 	```solidity
4753 | 	            xSignifier <<= 15;
4754 | 	```
4755 | 
4756 | - Found in contracts/util/ABDKMathQuad.sol [Line: 948](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L948)
4757 | 
4758 | 	```solidity
4759 | 	            if (xSignifier >= 0x10000000000000000000000000000) {
4760 | 	```
4761 | 
4762 | - Found in contracts/util/ABDKMathQuad.sol [Line: 949](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L949)
4763 | 
4764 | 	```solidity
4765 | 	              resultSignifier = 0x3FFE - xExponent;
4766 | 	```
4767 | 
4768 | - Found in contracts/util/ABDKMathQuad.sol [Line: 950](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L950)
4769 | 
4770 | 	```solidity
4771 | 	              xSignifier <<= 15;
4772 | 	```
4773 | 
4774 | - Found in contracts/util/ABDKMathQuad.sol [Line: 954](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L954)
4775 | 
4776 | 	```solidity
4777 | 	              xSignifier <<= 127 - msb;
4778 | 	```
4779 | 
4780 | - Found in contracts/util/ABDKMathQuad.sol [Line: 958](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L958)
4781 | 
4782 | 	```solidity
4783 | 	          if (xSignifier == 0x80000000000000000000000000000000) {
4784 | 	```
4785 | 
4786 | - Found in contracts/util/ABDKMathQuad.sol [Line: 960](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L960)
4787 | 
4788 | 	```solidity
4789 | 	            uint256 shift = 112 - mostSignificantBit (resultSignifier);
4790 | 	```
4791 | 
4792 | - Found in contracts/util/ABDKMathQuad.sol [Line: 965](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L965)
4793 | 
4794 | 	```solidity
4795 | 	            while (resultSignifier < 0x10000000000000000000000000000) {
4796 | 	```
4797 | 
4798 | - Found in contracts/util/ABDKMathQuad.sol [Line: 972](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L972)
4799 | 
4800 | 	```solidity
4801 | 	              xSignifier >>= 127 + b;
4802 | 	```
4803 | 
4804 | - Found in contracts/util/ABDKMathQuad.sol [Line: 976](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L976)
4805 | 
4806 | 	```solidity
4807 | 	          return bytes16 (uint128 ((resultNegative ? 0x80000000000000000000000000000000 : 0) |
4808 | 	```
4809 | 
4810 | - Found in contracts/util/ABDKMathQuad.sol [Line: 977](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L977)
4811 | 
4812 | 	```solidity
4813 | 	              resultExponent << 112 | resultSignifier & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF));
4814 | 	```
4815 | 
4816 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1003](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1003)
4817 | 
4818 | 	```solidity
4819 | 	      bool xNegative = uint128 (x) > 0x80000000000000000000000000000000;
4820 | 	```
4821 | 
4822 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1004](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1004)
4823 | 
4824 | 	```solidity
4825 | 	      uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;
4826 | 	```
4827 | 
4828 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1005](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1005)
4829 | 
4830 | 	```solidity
4831 | 	      uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4832 | 	```
4833 | 
4834 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1007](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1007)
4835 | 
4836 | 	```solidity
4837 | 	      if (xExponent == 0x7FFF && xSignifier != 0) return NaN;
4838 | 	```
4839 | 
4840 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1010](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1010)
4841 | 
4842 | 	```solidity
4843 | 	      else if (xExponent < 16255)
4844 | 	```
4845 | 
4846 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1011](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1011)
4847 | 
4848 | 	```solidity
4849 | 	        return 0x3FFF0000000000000000000000000000;
4850 | 	```
4851 | 
4852 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1014](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1014)
4853 | 
4854 | 	```solidity
4855 | 	        else xSignifier |= 0x10000000000000000000000000000;
4856 | 	```
4857 | 
4858 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1016](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1016)
4859 | 
4860 | 	```solidity
4861 | 	        if (xExponent > 16367)
4862 | 	```
4863 | 
4864 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1017](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1017)
4865 | 
4866 | 	```solidity
4867 | 	          xSignifier <<= xExponent - 16367;
4868 | 	```
4869 | 
4870 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1018](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1018)
4871 | 
4872 | 	```solidity
4873 | 	        else if (xExponent < 16367)
4874 | 	```
4875 | 
4876 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1019](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1019)
4877 | 
4878 | 	```solidity
4879 | 	          xSignifier >>= 16367 - xExponent;
4880 | 	```
4881 | 
4882 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1027](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1027)
4883 | 
4884 | 	```solidity
4885 | 	        uint256 resultExponent = xSignifier >> 128;
4886 | 	```
4887 | 
4888 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1034](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1034)
4889 | 
4890 | 	```solidity
4891 | 	        uint256 resultSignifier = 0x80000000000000000000000000000000;
4892 | 	```
4893 | 
4894 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1035](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1035)
4895 | 
4896 | 	```solidity
4897 | 	        if (xSignifier & 0x80000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x16A09E667F3BCC908B2FB1366EA957D3E >> 128;
4898 | 	```
4899 | 
4900 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1036](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1036)
4901 | 
4902 | 	```solidity
4903 | 	        if (xSignifier & 0x40000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1306FE0A31B7152DE8D5A46305C85EDEC >> 128;
4904 | 	```
4905 | 
4906 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1037](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1037)
4907 | 
4908 | 	```solidity
4909 | 	        if (xSignifier & 0x20000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1172B83C7D517ADCDF7C8C50EB14A791F >> 128;
4910 | 	```
4911 | 
4912 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1038](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1038)
4913 | 
4914 | 	```solidity
4915 | 	        if (xSignifier & 0x10000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10B5586CF9890F6298B92B71842A98363 >> 128;
4916 | 	```
4917 | 
4918 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1039](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1039)
4919 | 
4920 | 	```solidity
4921 | 	        if (xSignifier & 0x8000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1059B0D31585743AE7C548EB68CA417FD >> 128;
4922 | 	```
4923 | 
4924 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1040](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1040)
4925 | 
4926 | 	```solidity
4927 | 	        if (xSignifier & 0x4000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x102C9A3E778060EE6F7CACA4F7A29BDE8 >> 128;
4928 | 	```
4929 | 
4930 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1041](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1041)
4931 | 
4932 | 	```solidity
4933 | 	        if (xSignifier & 0x2000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10163DA9FB33356D84A66AE336DCDFA3F >> 128;
4934 | 	```
4935 | 
4936 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1042](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1042)
4937 | 
4938 | 	```solidity
4939 | 	        if (xSignifier & 0x1000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100B1AFA5ABCBED6129AB13EC11DC9543 >> 128;
4940 | 	```
4941 | 
4942 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1043](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1043)
4943 | 
4944 | 	```solidity
4945 | 	        if (xSignifier & 0x800000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10058C86DA1C09EA1FF19D294CF2F679B >> 128;
4946 | 	```
4947 | 
4948 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1044](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1044)
4949 | 
4950 | 	```solidity
4951 | 	        if (xSignifier & 0x400000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1002C605E2E8CEC506D21BFC89A23A00F >> 128;
4952 | 	```
4953 | 
4954 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1045](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1045)
4955 | 
4956 | 	```solidity
4957 | 	        if (xSignifier & 0x200000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100162F3904051FA128BCA9C55C31E5DF >> 128;
4958 | 	```
4959 | 
4960 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1046](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1046)
4961 | 
4962 | 	```solidity
4963 | 	        if (xSignifier & 0x100000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000B175EFFDC76BA38E31671CA939725 >> 128;
4964 | 	```
4965 | 
4966 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1047](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1047)
4967 | 
4968 | 	```solidity
4969 | 	        if (xSignifier & 0x80000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100058BA01FB9F96D6CACD4B180917C3D >> 128;
4970 | 	```
4971 | 
4972 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1048](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1048)
4973 | 
4974 | 	```solidity
4975 | 	        if (xSignifier & 0x40000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10002C5CC37DA9491D0985C348C68E7B3 >> 128;
4976 | 	```
4977 | 
4978 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1049](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1049)
4979 | 
4980 | 	```solidity
4981 | 	        if (xSignifier & 0x20000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000162E525EE054754457D5995292026 >> 128;
4982 | 	```
4983 | 
4984 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1050](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1050)
4985 | 
4986 | 	```solidity
4987 | 	        if (xSignifier & 0x10000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000B17255775C040618BF4A4ADE83FC >> 128;
4988 | 	```
4989 | 
4990 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1051](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1051)
4991 | 
4992 | 	```solidity
4993 | 	        if (xSignifier & 0x8000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000058B91B5BC9AE2EED81E9B7D4CFAB >> 128;
4994 | 	```
4995 | 
4996 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1052](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1052)
4997 | 
4998 | 	```solidity
4999 | 	        if (xSignifier & 0x4000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100002C5C89D5EC6CA4D7C8ACC017B7C9 >> 128;
5000 | 	```
5001 | 
5002 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1053](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1053)
5003 | 
5004 | 	```solidity
5005 | 	        if (xSignifier & 0x2000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000162E43F4F831060E02D839A9D16D >> 128;
5006 | 	```
5007 | 
5008 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1054](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1054)
5009 | 
5010 | 	```solidity
5011 | 	        if (xSignifier & 0x1000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000B1721BCFC99D9F890EA06911763 >> 128;
5012 | 	```
5013 | 
5014 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1055](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1055)
5015 | 
5016 | 	```solidity
5017 | 	        if (xSignifier & 0x800000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000058B90CF1E6D97F9CA14DBCC1628 >> 128;
5018 | 	```
5019 | 
5020 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1056](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1056)
5021 | 
5022 | 	```solidity
5023 | 	        if (xSignifier & 0x400000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000002C5C863B73F016468F6BAC5CA2B >> 128;
5024 | 	```
5025 | 
5026 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1057](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1057)
5027 | 
5028 | 	```solidity
5029 | 	        if (xSignifier & 0x200000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000162E430E5A18F6119E3C02282A5 >> 128;
5030 | 	```
5031 | 
5032 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1058](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1058)
5033 | 
5034 | 	```solidity
5035 | 	        if (xSignifier & 0x100000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000B1721835514B86E6D96EFD1BFE >> 128;
5036 | 	```
5037 | 
5038 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1059](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1059)
5039 | 
5040 | 	```solidity
5041 | 	        if (xSignifier & 0x80000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000058B90C0B48C6BE5DF846C5B2EF >> 128;
5042 | 	```
5043 | 
5044 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1060](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1060)
5045 | 
5046 | 	```solidity
5047 | 	        if (xSignifier & 0x40000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000002C5C8601CC6B9E94213C72737A >> 128;
5048 | 	```
5049 | 
5050 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1061](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1061)
5051 | 
5052 | 	```solidity
5053 | 	        if (xSignifier & 0x20000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000162E42FFF037DF38AA2B219F06 >> 128;
5054 | 	```
5055 | 
5056 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1062](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1062)
5057 | 
5058 | 	```solidity
5059 | 	        if (xSignifier & 0x10000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000B17217FBA9C739AA5819F44F9 >> 128;
5060 | 	```
5061 | 
5062 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1063](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1063)
5063 | 
5064 | 	```solidity
5065 | 	        if (xSignifier & 0x8000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000058B90BFCDEE5ACD3C1CEDC823 >> 128;
5066 | 	```
5067 | 
5068 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1064](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1064)
5069 | 
5070 | 	```solidity
5071 | 	        if (xSignifier & 0x4000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000002C5C85FE31F35A6A30DA1BE50 >> 128;
5072 | 	```
5073 | 
5074 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1065](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1065)
5075 | 
5076 | 	```solidity
5077 | 	        if (xSignifier & 0x2000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000162E42FF0999CE3541B9FFFCF >> 128;
5078 | 	```
5079 | 
5080 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1066](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1066)
5081 | 
5082 | 	```solidity
5083 | 	        if (xSignifier & 0x1000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000B17217F80F4EF5AADDA45554 >> 128;
5084 | 	```
5085 | 
5086 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1067](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1067)
5087 | 
5088 | 	```solidity
5089 | 	        if (xSignifier & 0x800000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000058B90BFBF8479BD5A81B51AD >> 128;
5090 | 	```
5091 | 
5092 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1068](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1068)
5093 | 
5094 | 	```solidity
5095 | 	        if (xSignifier & 0x400000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000002C5C85FDF84BD62AE30A74CC >> 128;
5096 | 	```
5097 | 
5098 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1069](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1069)
5099 | 
5100 | 	```solidity
5101 | 	        if (xSignifier & 0x200000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000162E42FEFB2FED257559BDAA >> 128;
5102 | 	```
5103 | 
5104 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1070](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1070)
5105 | 
5106 | 	```solidity
5107 | 	        if (xSignifier & 0x100000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000B17217F7D5A7716BBA4A9AE >> 128;
5108 | 	```
5109 | 
5110 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1071](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1071)
5111 | 
5112 | 	```solidity
5113 | 	        if (xSignifier & 0x80000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000058B90BFBE9DDBAC5E109CCE >> 128;
5114 | 	```
5115 | 
5116 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1072](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1072)
5117 | 
5118 | 	```solidity
5119 | 	        if (xSignifier & 0x40000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000002C5C85FDF4B15DE6F17EB0D >> 128;
5120 | 	```
5121 | 
5122 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1073](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1073)
5123 | 
5124 | 	```solidity
5125 | 	        if (xSignifier & 0x20000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000162E42FEFA494F1478FDE05 >> 128;
5126 | 	```
5127 | 
5128 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1074](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1074)
5129 | 
5130 | 	```solidity
5131 | 	        if (xSignifier & 0x10000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000B17217F7D20CF927C8E94C >> 128;
5132 | 	```
5133 | 
5134 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1075](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1075)
5135 | 
5136 | 	```solidity
5137 | 	        if (xSignifier & 0x8000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000058B90BFBE8F71CB4E4B33D >> 128;
5138 | 	```
5139 | 
5140 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1076](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1076)
5141 | 
5142 | 	```solidity
5143 | 	        if (xSignifier & 0x4000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000002C5C85FDF477B662B26945 >> 128;
5144 | 	```
5145 | 
5146 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1077](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1077)
5147 | 
5148 | 	```solidity
5149 | 	        if (xSignifier & 0x2000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000162E42FEFA3AE53369388C >> 128;
5150 | 	```
5151 | 
5152 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1078](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1078)
5153 | 
5154 | 	```solidity
5155 | 	        if (xSignifier & 0x1000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000B17217F7D1D351A389D40 >> 128;
5156 | 	```
5157 | 
5158 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1079](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1079)
5159 | 
5160 | 	```solidity
5161 | 	        if (xSignifier & 0x800000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000058B90BFBE8E8B2D3D4EDE >> 128;
5162 | 	```
5163 | 
5164 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1080](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1080)
5165 | 
5166 | 	```solidity
5167 | 	        if (xSignifier & 0x400000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000002C5C85FDF4741BEA6E77E >> 128;
5168 | 	```
5169 | 
5170 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1081](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1081)
5171 | 
5172 | 	```solidity
5173 | 	        if (xSignifier & 0x200000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000162E42FEFA39FE95583C2 >> 128;
5174 | 	```
5175 | 
5176 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1082](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1082)
5177 | 
5178 | 	```solidity
5179 | 	        if (xSignifier & 0x100000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000B17217F7D1CFB72B45E1 >> 128;
5180 | 	```
5181 | 
5182 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1083](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1083)
5183 | 
5184 | 	```solidity
5185 | 	        if (xSignifier & 0x80000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000058B90BFBE8E7CC35C3F0 >> 128;
5186 | 	```
5187 | 
5188 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1084](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1084)
5189 | 
5190 | 	```solidity
5191 | 	        if (xSignifier & 0x40000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000002C5C85FDF473E242EA38 >> 128;
5192 | 	```
5193 | 
5194 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1085](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1085)
5195 | 
5196 | 	```solidity
5197 | 	        if (xSignifier & 0x20000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000162E42FEFA39F02B772C >> 128;
5198 | 	```
5199 | 
5200 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1086](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1086)
5201 | 
5202 | 	```solidity
5203 | 	        if (xSignifier & 0x10000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000B17217F7D1CF7D83C1A >> 128;
5204 | 	```
5205 | 
5206 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1087](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1087)
5207 | 
5208 | 	```solidity
5209 | 	        if (xSignifier & 0x8000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000058B90BFBE8E7BDCBE2E >> 128;
5210 | 	```
5211 | 
5212 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1088](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1088)
5213 | 
5214 | 	```solidity
5215 | 	        if (xSignifier & 0x4000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000002C5C85FDF473DEA871F >> 128;
5216 | 	```
5217 | 
5218 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1089](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1089)
5219 | 
5220 | 	```solidity
5221 | 	        if (xSignifier & 0x2000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000162E42FEFA39EF44D91 >> 128;
5222 | 	```
5223 | 
5224 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1090](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1090)
5225 | 
5226 | 	```solidity
5227 | 	        if (xSignifier & 0x1000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000B17217F7D1CF79E949 >> 128;
5228 | 	```
5229 | 
5230 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1091](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1091)
5231 | 
5232 | 	```solidity
5233 | 	        if (xSignifier & 0x800000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000058B90BFBE8E7BCE544 >> 128;
5234 | 	```
5235 | 
5236 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1092](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1092)
5237 | 
5238 | 	```solidity
5239 | 	        if (xSignifier & 0x400000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000002C5C85FDF473DE6ECA >> 128;
5240 | 	```
5241 | 
5242 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1093](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1093)
5243 | 
5244 | 	```solidity
5245 | 	        if (xSignifier & 0x200000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000162E42FEFA39EF366F >> 128;
5246 | 	```
5247 | 
5248 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1094](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1094)
5249 | 
5250 | 	```solidity
5251 | 	        if (xSignifier & 0x100000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000B17217F7D1CF79AFA >> 128;
5252 | 	```
5253 | 
5254 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1095](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1095)
5255 | 
5256 | 	```solidity
5257 | 	        if (xSignifier & 0x80000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000058B90BFBE8E7BCD6D >> 128;
5258 | 	```
5259 | 
5260 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1096](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1096)
5261 | 
5262 | 	```solidity
5263 | 	        if (xSignifier & 0x40000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000002C5C85FDF473DE6B2 >> 128;
5264 | 	```
5265 | 
5266 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1097](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1097)
5267 | 
5268 | 	```solidity
5269 | 	        if (xSignifier & 0x20000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000162E42FEFA39EF358 >> 128;
5270 | 	```
5271 | 
5272 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1098](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1098)
5273 | 
5274 | 	```solidity
5275 | 	        if (xSignifier & 0x10000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000B17217F7D1CF79AB >> 128;
5276 | 	```
5277 | 
5278 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1099](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1099)
5279 | 
5280 | 	```solidity
5281 | 	        if (xSignifier & 0x8000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000058B90BFBE8E7BCD5 >> 128;
5282 | 	```
5283 | 
5284 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1100](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1100)
5285 | 
5286 | 	```solidity
5287 | 	        if (xSignifier & 0x4000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000002C5C85FDF473DE6A >> 128;
5288 | 	```
5289 | 
5290 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1101](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1101)
5291 | 
5292 | 	```solidity
5293 | 	        if (xSignifier & 0x2000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000162E42FEFA39EF34 >> 128;
5294 | 	```
5295 | 
5296 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1102](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1102)
5297 | 
5298 | 	```solidity
5299 | 	        if (xSignifier & 0x1000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000B17217F7D1CF799 >> 128;
5300 | 	```
5301 | 
5302 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1103](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1103)
5303 | 
5304 | 	```solidity
5305 | 	        if (xSignifier & 0x800000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000058B90BFBE8E7BCC >> 128;
5306 | 	```
5307 | 
5308 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1104](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1104)
5309 | 
5310 | 	```solidity
5311 | 	        if (xSignifier & 0x400000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000002C5C85FDF473DE5 >> 128;
5312 | 	```
5313 | 
5314 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1105](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1105)
5315 | 
5316 | 	```solidity
5317 | 	        if (xSignifier & 0x200000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000162E42FEFA39EF2 >> 128;
5318 | 	```
5319 | 
5320 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1106](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1106)
5321 | 
5322 | 	```solidity
5323 | 	        if (xSignifier & 0x100000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000B17217F7D1CF78 >> 128;
5324 | 	```
5325 | 
5326 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1107](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1107)
5327 | 
5328 | 	```solidity
5329 | 	        if (xSignifier & 0x80000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000058B90BFBE8E7BB >> 128;
5330 | 	```
5331 | 
5332 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1108](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1108)
5333 | 
5334 | 	```solidity
5335 | 	        if (xSignifier & 0x40000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000002C5C85FDF473DD >> 128;
5336 | 	```
5337 | 
5338 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1109](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1109)
5339 | 
5340 | 	```solidity
5341 | 	        if (xSignifier & 0x20000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000162E42FEFA39EE >> 128;
5342 | 	```
5343 | 
5344 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1110](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1110)
5345 | 
5346 | 	```solidity
5347 | 	        if (xSignifier & 0x10000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000B17217F7D1CF6 >> 128;
5348 | 	```
5349 | 
5350 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1111](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1111)
5351 | 
5352 | 	```solidity
5353 | 	        if (xSignifier & 0x8000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000058B90BFBE8E7A >> 128;
5354 | 	```
5355 | 
5356 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1112](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1112)
5357 | 
5358 | 	```solidity
5359 | 	        if (xSignifier & 0x4000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000002C5C85FDF473C >> 128;
5360 | 	```
5361 | 
5362 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1113](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1113)
5363 | 
5364 | 	```solidity
5365 | 	        if (xSignifier & 0x2000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000162E42FEFA39D >> 128;
5366 | 	```
5367 | 
5368 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1114](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1114)
5369 | 
5370 | 	```solidity
5371 | 	        if (xSignifier & 0x1000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000B17217F7D1CE >> 128;
5372 | 	```
5373 | 
5374 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1115](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1115)
5375 | 
5376 | 	```solidity
5377 | 	        if (xSignifier & 0x800000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000058B90BFBE8E6 >> 128;
5378 | 	```
5379 | 
5380 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1116](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1116)
5381 | 
5382 | 	```solidity
5383 | 	        if (xSignifier & 0x400000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000002C5C85FDF472 >> 128;
5384 | 	```
5385 | 
5386 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1117](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1117)
5387 | 
5388 | 	```solidity
5389 | 	        if (xSignifier & 0x200000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000162E42FEFA38 >> 128;
5390 | 	```
5391 | 
5392 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1118](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1118)
5393 | 
5394 | 	```solidity
5395 | 	        if (xSignifier & 0x100000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000B17217F7D1B >> 128;
5396 | 	```
5397 | 
5398 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1119](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1119)
5399 | 
5400 | 	```solidity
5401 | 	        if (xSignifier & 0x80000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000058B90BFBE8D >> 128;
5402 | 	```
5403 | 
5404 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1120](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1120)
5405 | 
5406 | 	```solidity
5407 | 	        if (xSignifier & 0x40000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000002C5C85FDF46 >> 128;
5408 | 	```
5409 | 
5410 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1121](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1121)
5411 | 
5412 | 	```solidity
5413 | 	        if (xSignifier & 0x20000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000162E42FEFA2 >> 128;
5414 | 	```
5415 | 
5416 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1122](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1122)
5417 | 
5418 | 	```solidity
5419 | 	        if (xSignifier & 0x10000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000B17217F7D0 >> 128;
5420 | 	```
5421 | 
5422 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1123](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1123)
5423 | 
5424 | 	```solidity
5425 | 	        if (xSignifier & 0x8000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000058B90BFBE7 >> 128;
5426 | 	```
5427 | 
5428 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1124](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1124)
5429 | 
5430 | 	```solidity
5431 | 	        if (xSignifier & 0x4000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000002C5C85FDF3 >> 128;
5432 | 	```
5433 | 
5434 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1125](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1125)
5435 | 
5436 | 	```solidity
5437 | 	        if (xSignifier & 0x2000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000162E42FEF9 >> 128;
5438 | 	```
5439 | 
5440 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1126](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1126)
5441 | 
5442 | 	```solidity
5443 | 	        if (xSignifier & 0x1000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000B17217F7C >> 128;
5444 | 	```
5445 | 
5446 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1127](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1127)
5447 | 
5448 | 	```solidity
5449 | 	        if (xSignifier & 0x800000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000058B90BFBD >> 128;
5450 | 	```
5451 | 
5452 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1128](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1128)
5453 | 
5454 | 	```solidity
5455 | 	        if (xSignifier & 0x400000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000002C5C85FDE >> 128;
5456 | 	```
5457 | 
5458 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1129](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1129)
5459 | 
5460 | 	```solidity
5461 | 	        if (xSignifier & 0x200000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000162E42FEE >> 128;
5462 | 	```
5463 | 
5464 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1130](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1130)
5465 | 
5466 | 	```solidity
5467 | 	        if (xSignifier & 0x100000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000B17217F6 >> 128;
5468 | 	```
5469 | 
5470 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1131](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1131)
5471 | 
5472 | 	```solidity
5473 | 	        if (xSignifier & 0x80000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000058B90BFA >> 128;
5474 | 	```
5475 | 
5476 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1132](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1132)
5477 | 
5478 | 	```solidity
5479 | 	        if (xSignifier & 0x40000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000002C5C85FC >> 128;
5480 | 	```
5481 | 
5482 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1133](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1133)
5483 | 
5484 | 	```solidity
5485 | 	        if (xSignifier & 0x20000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000162E42FD >> 128;
5486 | 	```
5487 | 
5488 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1134](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1134)
5489 | 
5490 | 	```solidity
5491 | 	        if (xSignifier & 0x10000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000B17217E >> 128;
5492 | 	```
5493 | 
5494 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1135](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1135)
5495 | 
5496 | 	```solidity
5497 | 	        if (xSignifier & 0x8000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000058B90BE >> 128;
5498 | 	```
5499 | 
5500 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1136](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1136)
5501 | 
5502 | 	```solidity
5503 | 	        if (xSignifier & 0x4000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000002C5C85E >> 128;
5504 | 	```
5505 | 
5506 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1137](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1137)
5507 | 
5508 | 	```solidity
5509 | 	        if (xSignifier & 0x2000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000162E42E >> 128;
5510 | 	```
5511 | 
5512 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1138](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1138)
5513 | 
5514 | 	```solidity
5515 | 	        if (xSignifier & 0x1000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000B17216 >> 128;
5516 | 	```
5517 | 
5518 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1139](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1139)
5519 | 
5520 | 	```solidity
5521 | 	        if (xSignifier & 0x800000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000058B90A >> 128;
5522 | 	```
5523 | 
5524 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1140](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1140)
5525 | 
5526 | 	```solidity
5527 | 	        if (xSignifier & 0x400000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000002C5C84 >> 128;
5528 | 	```
5529 | 
5530 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1141](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1141)
5531 | 
5532 | 	```solidity
5533 | 	        if (xSignifier & 0x200000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000162E41 >> 128;
5534 | 	```
5535 | 
5536 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1142](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1142)
5537 | 
5538 | 	```solidity
5539 | 	        if (xSignifier & 0x100000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000B1720 >> 128;
5540 | 	```
5541 | 
5542 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1143](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1143)
5543 | 
5544 | 	```solidity
5545 | 	        if (xSignifier & 0x80000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000058B8F >> 128;
5546 | 	```
5547 | 
5548 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1144](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1144)
5549 | 
5550 | 	```solidity
5551 | 	        if (xSignifier & 0x40000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000002C5C7 >> 128;
5552 | 	```
5553 | 
5554 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1145](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1145)
5555 | 
5556 | 	```solidity
5557 | 	        if (xSignifier & 0x20000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000162E3 >> 128;
5558 | 	```
5559 | 
5560 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1146](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1146)
5561 | 
5562 | 	```solidity
5563 | 	        if (xSignifier & 0x10000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000B171 >> 128;
5564 | 	```
5565 | 
5566 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1147](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1147)
5567 | 
5568 | 	```solidity
5569 | 	        if (xSignifier & 0x8000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000058B8 >> 128;
5570 | 	```
5571 | 
5572 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1148](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1148)
5573 | 
5574 | 	```solidity
5575 | 	        if (xSignifier & 0x4000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000002C5B >> 128;
5576 | 	```
5577 | 
5578 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1149](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1149)
5579 | 
5580 | 	```solidity
5581 | 	        if (xSignifier & 0x2000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000162D >> 128;
5582 | 	```
5583 | 
5584 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1150](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1150)
5585 | 
5586 | 	```solidity
5587 | 	        if (xSignifier & 0x1000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000B16 >> 128;
5588 | 	```
5589 | 
5590 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1151](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1151)
5591 | 
5592 | 	```solidity
5593 | 	        if (xSignifier & 0x800 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000058A >> 128;
5594 | 	```
5595 | 
5596 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1152](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1152)
5597 | 
5598 | 	```solidity
5599 | 	        if (xSignifier & 0x400 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000002C4 >> 128;
5600 | 	```
5601 | 
5602 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1153](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1153)
5603 | 
5604 | 	```solidity
5605 | 	        if (xSignifier & 0x200 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000161 >> 128;
5606 | 	```
5607 | 
5608 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1154](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1154)
5609 | 
5610 | 	```solidity
5611 | 	        if (xSignifier & 0x100 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000000B0 >> 128;
5612 | 	```
5613 | 
5614 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1155](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1155)
5615 | 
5616 | 	```solidity
5617 | 	        if (xSignifier & 0x80 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000057 >> 128;
5618 | 	```
5619 | 
5620 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1156](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1156)
5621 | 
5622 | 	```solidity
5623 | 	        if (xSignifier & 0x40 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000002B >> 128;
5624 | 	```
5625 | 
5626 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1157](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1157)
5627 | 
5628 | 	```solidity
5629 | 	        if (xSignifier & 0x20 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000015 >> 128;
5630 | 	```
5631 | 
5632 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1158](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1158)
5633 | 
5634 | 	```solidity
5635 | 	        if (xSignifier & 0x10 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000000A >> 128;
5636 | 	```
5637 | 
5638 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1159](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1159)
5639 | 
5640 | 	```solidity
5641 | 	        if (xSignifier & 0x8 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000004 >> 128;
5642 | 	```
5643 | 
5644 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1160](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1160)
5645 | 
5646 | 	```solidity
5647 | 	        if (xSignifier & 0x4 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000001 >> 128;
5648 | 	```
5649 | 
5650 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1163](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1163)
5651 | 
5652 | 	```solidity
5653 | 	          resultSignifier = resultSignifier >> 15 & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
5654 | 	```
5655 | 
5656 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1164](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1164)
5657 | 
5658 | 	```solidity
5659 | 	          resultExponent += 0x3FFF;
5660 | 	```
5661 | 
5662 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1165](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1165)
5663 | 
5664 | 	```solidity
5665 | 	        } else if (resultExponent <= 0x3FFE) {
5666 | 	```
5667 | 
5668 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1166](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1166)
5669 | 
5670 | 	```solidity
5671 | 	          resultSignifier = resultSignifier >> 15 & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
5672 | 	```
5673 | 
5674 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1167](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1167)
5675 | 
5676 | 	```solidity
5677 | 	          resultExponent = 0x3FFF - resultExponent;
5678 | 	```
5679 | 
5680 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1169](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1169)
5681 | 
5682 | 	```solidity
5683 | 	          resultSignifier = resultSignifier >> resultExponent - 16367;
5684 | 	```
5685 | 
5686 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1173](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1173)
5687 | 
5688 | 	```solidity
5689 | 	        return bytes16 (uint128 (resultExponent << 112 | resultSignifier));
5690 | 	```
5691 | 
5692 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1203](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1203)
5693 | 
5694 | 	```solidity
5695 | 	      if (x >= 0x100000000000000000000000000000000) { x >>= 128; result += 128; }
5696 | 	```
5697 | 
5698 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1204](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1204)
5699 | 
5700 | 	```solidity
5701 | 	      if (x >= 0x10000000000000000) { x >>= 64; result += 64; }
5702 | 	```
5703 | 
5704 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1205](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1205)
5705 | 
5706 | 	```solidity
5707 | 	      if (x >= 0x100000000) { x >>= 32; result += 32; }
5708 | 	```
5709 | 
5710 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1206](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1206)
5711 | 
5712 | 	```solidity
5713 | 	      if (x >= 0x10000) { x >>= 16; result += 16; }
5714 | 	```
5715 | 
5716 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1207](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1207)
5717 | 
5718 | 	```solidity
5719 | 	      if (x >= 0x100) { x >>= 8; result += 8; }
5720 | 	```
5721 | 
5722 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1208](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1208)
5723 | 
5724 | 	```solidity
5725 | 	      if (x >= 0x10) { x >>= 4; result += 4; }
5726 | 	```
5727 | 
5728 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1209](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1209)
5729 | 
5730 | 	```solidity
5731 | 	      if (x >= 0x4) { x >>= 2; result += 2; }
5732 | 	```
5733 | 
5734 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 69](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L69)
5735 | 
5736 | 	```solidity
5737 | 	        require(signatures.length >= requiredSignatures * 65, "!Dynamic Signature Threshold");
5738 | 	```
5739 | 
5740 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 88](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L88)
5741 | 
5742 | 	```solidity
5743 | 	                require(uint256(s) >= (requiredSignatures * 65), "GS021");
5744 | 	```
5745 | 
5746 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 91](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L91)
5747 | 
5748 | 	```solidity
5749 | 	                require((uint256(s) + 32) <= signatures.length, "GS022");
5750 | 	```
5751 | 
5752 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 100](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L100)
5753 | 
5754 | 	```solidity
5755 | 	                require((uint256(s) + 32 + contractSignatureLen) <= signatures.length, "GS023");
5756 | 	```
5757 | 
5758 | </details>
5759 | 
5760 | 
5761 | 
5762 | ## L-12: Local Variable Shadows State Variable
5763 | 
5764 | Rename the local variable that shadows another state variable.
5765 | 
5766 | <details><summary>12 Found Instances</summary>
5767 | 
5768 | 
5769 | - Found in contracts/core/Exposure.sol [Line: 40](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L40)
5770 | 
5771 | 	```solidity
5772 | 	    constructor(string memory _name, string memory _symbol, IERC20 _revalToken) ERC20(_name, _symbol) Ownable(msg.sender) {
5773 | 	```
5774 | 
5775 | - Found in contracts/core/Vault.sol [Line: 61](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L61)
5776 | 
5777 | 	```solidity
5778 | 	        string memory _name,
5779 | 	```
5780 | 
5781 | - Found in contracts/core/Vault.sol [Line: 62](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L62)
5782 | 
5783 | 	```solidity
5784 | 	        string memory _symbol,
5785 | 	```
5786 | 
5787 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L49)
5788 | 
5789 | 	```solidity
5790 | 	        string memory _name,
5791 | 	```
5792 | 
5793 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L50)
5794 | 
5795 | 	```solidity
5796 | 	        string memory _symbol
5797 | 	```
5798 | 
5799 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 116](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L116)
5800 | 
5801 | 	```solidity
5802 | 	        uint40 periodFinish;
5803 | 	```
5804 | 
5805 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 118](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L118)
5806 | 
5807 | 	```solidity
5808 | 	        uint40 lastUpdateTime;
5809 | 	```
5810 | 
5811 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 119](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L119)
5812 | 
5813 | 	```solidity
5814 | 	        uint216 rewardPerTokenStored;
5815 | 	```
5816 | 
5817 | - Found in contracts/v2/TempleDebtToken.sol [Line: 588](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L588)
5818 | 
5819 | 	```solidity
5820 | 	        uint96 baseRate;
5821 | 	```
5822 | 
5823 | - Found in contracts/v2/TempleDebtToken.sol [Line: 591](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L591)
5824 | 
5825 | 	```solidity
5826 | 	        uint128 baseShares;
5827 | 	```
5828 | 
5829 | - Found in contracts/v2/TempleDebtToken.sol [Line: 654](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L654)
5830 | 
5831 | 	```solidity
5832 | 	        uint128 baseShares;
5833 | 	```
5834 | 
5835 | </details>
5836 | 
5837 | 
5838 | 
5839 | ## L-13: Missing Inheritance
5840 | 
5841 | There is an interface / abstract contract that is potentially missing (not included in) the inheritance of this contract.
5842 | 
5843 | <details><summary>1 Found Instances</summary>
5844 | 
5845 | 
5846 | - Found in contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol [Line: 7](../tests/2024-07-templegold/protocol/contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol#L7)
5847 | 
5848 | 	Is this contract supposed to implement an interface? Consider extending one of the following: AMO_IAuraToken
5849 | 	```solidity
5850 | 	contract TempleDebtTokenTestnetAdmin {
5851 | 	```
5852 | 
5853 | </details>
5854 | 
5855 | 
5856 | 
5857 | ## L-14: Modifier Invoked Only Once
5858 | 
5859 | Consider removing the modifier or inlining the logic into the calling function.
5860 | 
5861 | <details><summary>5 Found Instances</summary>
5862 | 
5863 | 
5864 | - Found in contracts/core/Exposure.sol [Line: 133](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L133)
5865 | 
5866 | 	```solidity
5867 | 	    modifier onlyMinter() {
5868 | 	```
5869 | 
5870 | - Found in contracts/templegold/DaiGoldAuction.sol [Line: 308](../tests/2024-07-templegold/protocol/contracts/templegold/DaiGoldAuction.sol#L308)
5871 | 
5872 | 	```solidity
5873 | 	    modifier onlyWhenLive() {
5874 | 	```
5875 | 
5876 | - Found in contracts/templegold/TempleGold.sol [Line: 343](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L343)
5877 | 
5878 | 	```solidity
5879 | 	    modifier onlyArbitrum() {
5880 | 	```
5881 | 
5882 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 604](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L604)
5883 | 
5884 | 	```solidity
5885 | 	    modifier onlyMigrator() {
5886 | 	```
5887 | 
5888 | - Found in contracts/v2/access/TempleElevatedAccess.sol [Line: 146](../tests/2024-07-templegold/protocol/contracts/v2/access/TempleElevatedAccess.sol#L146)
5889 | 
5890 | 	```solidity
5891 | 	    modifier onlyInRescueMode() {
5892 | 	```
5893 | 
5894 | </details>
5895 | 
5896 | 
5897 | 
5898 | ## L-15: Redundant Statement
5899 | 
5900 | Remove the redundant statement.
5901 | 
5902 | <details><summary>1 Found Instances</summary>
5903 | 
5904 | 
5905 | - Found in contracts/deprecated/InstantExitQueue.sol [Line: 28](../tests/2024-07-templegold/protocol/contracts/deprecated/InstantExitQueue.sol#L28)
5906 | 
5907 | 	```solidity
5908 | 	            _exiter;
5909 | 	```
5910 | 
5911 | </details>
5912 | 
5913 | 
5914 | 
5915 | ## L-16: Loop Contains `require`/`revert`
5916 | 
5917 | Avoid `require` / `revert` statements in a loop because a single bad item can cause the whole transaction to fail. It's better to forgive on fail and return failed elements post processing of the loop
5918 | 
5919 | <details><summary>18 Found Instances</summary>
5920 | 
5921 | 
5922 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 38](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L38)
5923 | 
5924 | 	```solidity
5925 | 	        for (uint256 i = 0; i < _addresses.length; i++) {
5926 | 	```
5927 | 
5928 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 128](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L128)
5929 | 
5930 | 	```solidity
5931 | 	        for (uint256 i; i < _dests.length; ) {
5932 | 	```
5933 | 
5934 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L50)
5935 | 
5936 | 	```solidity
5937 | 	        for (uint256 i; i < _addresses.length; ) {
5938 | 	```
5939 | 
5940 | - Found in contracts/amo/AuraStaking.sol [Line: 116](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L116)
5941 | 
5942 | 	```solidity
5943 | 	            for (uint i; i < length; ++i) {
5944 | 	```
5945 | 
5946 | - Found in contracts/core/OpsManager.sol [Line: 97](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L97)
5947 | 
5948 | 	```solidity
5949 | 	        for (uint256 i = 0; i < vaults.length; i++) {
5950 | 	```
5951 | 
5952 | - Found in contracts/core/OpsManager.sol [Line: 133](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L133)
5953 | 
5954 | 	```solidity
5955 | 	        for (uint256 i = 0; i < vaults.length; i++) {
5956 | 	```
5957 | 
5958 | - Found in contracts/core/OpsManager.sol [Line: 151](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L151)
5959 | 
5960 | 	```solidity
5961 | 	        for (uint256 i = 0; i < vaults.length; i++) {
5962 | 	```
5963 | 
5964 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 178](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L178)
5965 | 
5966 | 	```solidity
5967 | 	        for (uint i; i < path.length - 1; i++) {
5968 | 	```
5969 | 
5970 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 259](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L259)
5971 | 
5972 | 	```solidity
5973 | 	        for (uint i; i < path.length - 1; i++) {
5974 | 	```
5975 | 
5976 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 362](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L362)
5977 | 
5978 | 	```solidity
5979 | 	        for (uint i; i < path.length - 1; i++) {
5980 | 	```
5981 | 
5982 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 378](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L378)
5983 | 
5984 | 	```solidity
5985 | 	        for (uint i = path.length - 1; i > 0; i--) {
5986 | 	```
5987 | 
5988 | - Found in contracts/util/ABDKMath64x64.sol [Line: 411](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L411)
5989 | 
5990 | 	```solidity
5991 | 	        while (y != 0) {
5992 | 	```
5993 | 
5994 | - Found in contracts/v2/TempleDebtToken.sol [Line: 454](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L454)
5995 | 
5996 | 	```solidity
5997 | 	        for (uint256 i; i < _length; ++i) {
5998 | 	```
5999 | 
6000 | - Found in contracts/v2/TempleDebtToken.sol [Line: 507](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L507)
6001 | 
6002 | 	```solidity
6003 | 	        for (uint256 i; i < _length; ++i) {
6004 | 	```
6005 | 
6006 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 187](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L187)
6007 | 
6008 | 	```solidity
6009 | 	        for (uint256 i; i < _length; ++i) {
6010 | 	```
6011 | 
6012 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 216](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L216)
6013 | 
6014 | 	```solidity
6015 | 	        for (; i < _length; ++i) {
6016 | 	```
6017 | 
6018 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 330](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L330)
6019 | 
6020 | 	```solidity
6021 | 	        for (uint256 i; i < _numAccounts; ++i) {
6022 | 	```
6023 | 
6024 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 528](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L528)
6025 | 
6026 | 	```solidity
6027 | 	        for (uint256 i; i < _numAccounts; ++i) {
6028 | 	```
6029 | 
6030 | </details>
6031 | 
6032 | 
6033 | 
6034 | ## L-17: State Change Without Event
6035 | 
6036 | There are state variable changes in this function but no event is emitted. Consider emitting an event to enable offchain indexers to track the changes.
6037 | 
6038 | <details><summary>18 Found Instances</summary>
6039 | 
6040 | 
6041 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 29](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L29)
6042 | 
6043 | 	```solidity
6044 | 	    function setAllocations(
6045 | 	```
6046 | 
6047 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 44](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L44)
6048 | 
6049 | 	```solidity
6050 | 	    function setAllocation(address _address, uint256 _amount) external onlyOwner {
6051 | 	```
6052 | 
6053 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L49)
6054 | 
6055 | 	```solidity
6056 | 	    function pauseMember(address _address)
6057 | 	```
6058 | 
6059 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 48](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L48)
6060 | 
6061 | 	```solidity
6062 | 	    function addPair(address _token, address _pair) external onlyOwner {
6063 | 	```
6064 | 
6065 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L52)
6066 | 
6067 | 	```solidity
6068 | 	    function setTreasury(ITreasuryIV _templeTreasury) external onlyOwner {
6069 | 	```
6070 | 
6071 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 56](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L56)
6072 | 
6073 | 	```solidity
6074 | 	    function setDefendStable(address _defendStable) external onlyOwner {
6075 | 	```
6076 | 
6077 | - Found in contracts/amm/TreasuryIV.sol [Line: 23](../tests/2024-07-templegold/protocol/contracts/amm/TreasuryIV.sol#L23)
6078 | 
6079 | 	```solidity
6080 | 	    function setIV(uint256 frax, uint256 temple) external onlyOwner {
6081 | 	```
6082 | 
6083 | - Found in contracts/core/VaultProxy.sol [Line: 118](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L118)
6084 | 
6085 | 	```solidity
6086 | 	    function toggleFaithClaimEnabled() external onlyOwner {
6087 | 	```
6088 | 
6089 | - Found in contracts/deprecated/Faith.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L50)
6090 | 
6091 | 	```solidity
6092 | 	    function addManager(address account) external onlyOwner {
6093 | 	```
6094 | 
6095 | - Found in contracts/deprecated/Faith.sol [Line: 54](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L54)
6096 | 
6097 | 	```solidity
6098 | 	    function removeManager(address account) external onlyOwner {
6099 | 	```
6100 | 
6101 | - Found in contracts/deprecated/TempleStaking.sol [Line: 67](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L67)
6102 | 
6103 | 	```solidity
6104 | 	    function setExitQueue(IExitQueue _EXIT_QUEUE) external onlyOwner {
6105 | 	```
6106 | 
6107 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 268](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L268)
6108 | 
6109 | 	```solidity
6110 | 	    function distributeRewards() updateReward(address(0), 0) external {
6111 | 	```
6112 | 
6113 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 180](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L180)
6114 | 
6115 | 	```solidity
6116 | 	    function distributeRewards() updateReward(address(0), 0) external {
6117 | 	```
6118 | 
6119 | - Found in contracts/v2/TempleDebtToken.sol [Line: 423](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L423)
6120 | 
6121 | 	```solidity
6122 | 	    function checkpointBaseInterest() external override returns (uint256) {
6123 | 	```
6124 | 
6125 | - Found in contracts/v2/TempleDebtToken.sol [Line: 431](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L431)
6126 | 
6127 | 	```solidity
6128 | 	    function checkpointDebtorInterest(address debtor) external override returns (uint256) {
6129 | 	```
6130 | 
6131 | - Found in contracts/v2/TempleDebtToken.sol [Line: 445](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L445)
6132 | 
6133 | 	```solidity
6134 | 	    function checkpointDebtorsInterest(address[] calldata _debtors) external override {
6135 | 	```
6136 | 
6137 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 206](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L206)
6138 | 
6139 | 	```solidity
6140 | 	    function updateStrategyEnabledBorrowTokens(
6141 | 	```
6142 | 
6143 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol [Line: 89](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L89)
6144 | 
6145 | 	```solidity
6146 | 	    function preCheck(address /*onBehalfOf*/, uint256 amount) external override onlyElevatedAccess {
6147 | 	```
6148 | 
6149 | </details>
6150 | 
6151 | 
6152 | 
6153 | ## L-18: Address State Variable Set Without Checks
6154 | 
6155 | Check for `address(0)` when assigning values to address state variables.
6156 | 
6157 | <details><summary>43 Found Instances</summary>
6158 | 
6159 | 
6160 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 41](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L41)
6161 | 
6162 | 	```solidity
6163 | 	        templeTeamPaymentsImplementation = _implementation;
6164 | 	```
6165 | 
6166 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 27](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L27)
6167 | 
6168 | 	```solidity
6169 | 	        temple = _temple;
6170 | 	```
6171 | 
6172 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 44](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L44)
6173 | 
6174 | 	```solidity
6175 | 	        templeTreasury = _templeTreasury;
6176 | 	```
6177 | 
6178 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 45](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L45)
6179 | 
6180 | 	```solidity
6181 | 	        defendStable  = _defendStable;
6182 | 	```
6183 | 
6184 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 53](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L53)
6185 | 
6186 | 	```solidity
6187 | 	        templeTreasury = _templeTreasury;
6188 | 	```
6189 | 
6190 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 57](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L57)
6191 | 
6192 | 	```solidity
6193 | 	        defendStable = _defendStable;
6194 | 	```
6195 | 
6196 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 68](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L68)
6197 | 
6198 | 	```solidity
6199 | 	        owner = _owner;
6200 | 	```
6201 | 
6202 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 69](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L69)
6203 | 
6204 | 	```solidity
6205 | 	        token0 = _token0;
6206 | 	```
6207 | 
6208 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 70](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L70)
6209 | 
6210 | 	```solidity
6211 | 	        token1 = _token1;
6212 | 	```
6213 | 
6214 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 76](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L76)
6215 | 
6216 | 	```solidity
6217 | 	        router = _router;
6218 | 	```
6219 | 
6220 | - Found in contracts/amo/AuraStaking.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L49)
6221 | 
6222 | 	```solidity
6223 | 	        rewardsRecipient = _recipient;
6224 | 	```
6225 | 
6226 | - Found in contracts/amo/Ramos.sol [Line: 123](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L123)
6227 | 
6228 | 	```solidity
6229 | 	        feeCollector = _feeCollector;
6230 | 	```
6231 | 
6232 | - Found in contracts/amo/Ramos.sol [Line: 135](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L135)
6233 | 
6234 | 	```solidity
6235 | 	        poolHelper = IBalancerPoolHelper(_poolHelper);
6236 | 	```
6237 | 
6238 | - Found in contracts/amo/Ramos.sol [Line: 183](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L183)
6239 | 
6240 | 	```solidity
6241 | 	        tpiOracle = ITreasuryPriceIndexOracle(newTpiOracle);
6242 | 	```
6243 | 
6244 | - Found in contracts/amo/Ramos.sol [Line: 199](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L199)
6245 | 
6246 | 	```solidity
6247 | 	        tokenVault = IRamosTokenVault(vault);
6248 | 	```
6249 | 
6250 | - Found in contracts/core/Exposure.sol [Line: 41](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L41)
6251 | 
6252 | 	```solidity
6253 | 	        revalToken = _revalToken;
6254 | 	```
6255 | 
6256 | - Found in contracts/core/Exposure.sol [Line: 68](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L68)
6257 | 
6258 | 	```solidity
6259 | 	        liquidator = _liquidator;
6260 | 	```
6261 | 
6262 | - Found in contracts/core/OpsManager.sol [Line: 35](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L35)
6263 | 
6264 | 	```solidity
6265 | 	        templeExposure = new Exposure("vaulted temple", "V_TEMPLE", _templeToken);
6266 | 	```
6267 | 
6268 | - Found in contracts/core/OpsManager.sol [Line: 37](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L37)
6269 | 
6270 | 	```solidity
6271 | 	        vaultedTemple = new VaultedTemple(_templeToken, address(templeExposure));
6272 | 	```
6273 | 
6274 | - Found in contracts/core/OtcOffer.sol [Line: 80](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L80)
6275 | 
6276 | 	```solidity
6277 | 	        fundsOwner = _fundsOwner;
6278 | 	```
6279 | 
6280 | - Found in contracts/deprecated/InstantExitQueue.sol [Line: 18](../tests/2024-07-templegold/protocol/contracts/deprecated/InstantExitQueue.sol#L18)
6281 | 
6282 | 	```solidity
6283 | 	        templeStaking = _templeStaking;
6284 | 	```
6285 | 
6286 | - Found in contracts/deprecated/InstantExitQueue.sol [Line: 19](../tests/2024-07-templegold/protocol/contracts/deprecated/InstantExitQueue.sol#L19)
6287 | 
6288 | 	```solidity
6289 | 	        templeToken = _templeToken;
6290 | 	```
6291 | 
6292 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 27](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L27)
6293 | 
6294 | 	```solidity
6295 | 	    OG_TEMPLE = _OG_TEMPLE;
6296 | 	```
6297 | 
6298 | - Found in contracts/deprecated/TempleStaking.sol [Line: 55](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L55)
6299 | 
6300 | 	```solidity
6301 | 	        EXIT_QUEUE = _EXIT_QUEUE;
6302 | 	```
6303 | 
6304 | - Found in contracts/deprecated/TempleStaking.sol [Line: 68](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L68)
6305 | 
6306 | 	```solidity
6307 | 	        EXIT_QUEUE = _EXIT_QUEUE;
6308 | 	```
6309 | 
6310 | - Found in contracts/fakes/NoopLiquidator.sol [Line: 16](../tests/2024-07-templegold/protocol/contracts/fakes/NoopLiquidator.sol#L16)
6311 | 
6312 | 	```solidity
6313 | 	        templeToken = _templeToken;
6314 | 	```
6315 | 
6316 | - Found in contracts/fakes/NoopVaultedTempleLiquidator.sol [Line: 18](../tests/2024-07-templegold/protocol/contracts/fakes/NoopVaultedTempleLiquidator.sol#L18)
6317 | 
6318 | 	```solidity
6319 | 	        templeToken = _templeToken;
6320 | 	```
6321 | 
6322 | - Found in contracts/fakes/NoopVaultedTempleLiquidator.sol [Line: 19](../tests/2024-07-templegold/protocol/contracts/fakes/NoopVaultedTempleLiquidator.sol#L19)
6323 | 
6324 | 	```solidity
6325 | 	        vaultedTemple = _vaultedTemple;
6326 | 	```
6327 | 
6328 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 143](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L143)
6329 | 
6330 | 	```solidity
6331 | 	        previousStaking = ITempleGoldStaking(_previousStaking);
6332 | 	```
6333 | 
6334 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 192](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L192)
6335 | 
6336 | 	```solidity
6337 | 	        distributionStarter = _starter;
6338 | 	```
6339 | 
6340 | - Found in contracts/governance/ElderElection.sol [Line: 60](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L60)
6341 | 
6342 | 	```solidity
6343 | 	        templars = _templars;
6344 | 	```
6345 | 
6346 | - Found in contracts/governance/TemplarMetadata.sol [Line: 21](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L21)
6347 | 
6348 | 	```solidity
6349 | 	        templars = _templars;
6350 | 	```
6351 | 
6352 | - Found in contracts/templegold/DaiGoldAuction.sol [Line: 56](../tests/2024-07-templegold/protocol/contracts/templegold/DaiGoldAuction.sol#L56)
6353 | 
6354 | 	```solidity
6355 | 	        bidToken = IERC20(_bidToken);
6356 | 	```
6357 | 
6358 | - Found in contracts/templegold/DaiGoldAuction.sol [Line: 81](../tests/2024-07-templegold/protocol/contracts/templegold/DaiGoldAuction.sol#L81)
6359 | 
6360 | 	```solidity
6361 | 	        auctionStarter = _starter;
6362 | 	```
6363 | 
6364 | - Found in contracts/templegold/SpiceAuction.sol [Line: 63](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L63)
6365 | 
6366 | 	```solidity
6367 | 	        daoExecutor = _daoExecutor;
6368 | 	```
6369 | 
6370 | - Found in contracts/templegold/TempleGold.sol [Line: 69](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L69)
6371 | 
6372 | 	```solidity
6373 | 	       staking = ITempleGoldStaking(_initArgs.staking);
6374 | 	```
6375 | 
6376 | - Found in contracts/templegold/TempleGold.sol [Line: 70](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L70)
6377 | 
6378 | 	```solidity
6379 | 	       escrow = IDaiGoldAuction(_initArgs.escrow);
6380 | 	```
6381 | 
6382 | - Found in contracts/templegold/TempleGold.sol [Line: 71](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L71)
6383 | 
6384 | 	```solidity
6385 | 	       teamGnosis = _initArgs.gnosis;
6386 | 	```
6387 | 
6388 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 127](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L127)
6389 | 
6390 | 	```solidity
6391 | 	        distributionStarter = _starter;
6392 | 	```
6393 | 
6394 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 101](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L101)
6395 | 
6396 | 	```solidity
6397 | 	        tpiOracle = ITreasuryPriceIndexOracle(_tpiOracle);
6398 | 	```
6399 | 
6400 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 120](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L120)
6401 | 
6402 | 	```solidity
6403 | 	        borrowTokens[token] = BorrowTokenConfig({
6404 | 	```
6405 | 
6406 | - Found in contracts/v2/strategies/AbstractStrategy.sol [Line: 46](../tests/2024-07-templegold/protocol/contracts/v2/strategies/AbstractStrategy.sol#L46)
6407 | 
6408 | 	```solidity
6409 | 	        treasuryReservesVault = ITreasuryReservesVault(_treasuryReservesVault);
6410 | 	```
6411 | 
6412 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 389](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L389)
6413 | 
6414 | 	```solidity
6415 | 	        tlcStrategy = ITlcStrategy(newTlcStrategy);
6416 | 	```
6417 | 
6418 | </details>
6419 | 
6420 | 
6421 | 
6422 | ## L-19: State Variable Could Be Immutable
6423 | 
6424 | State variables that are only changed in the constructor should be declared immutable to save gas. Add the `immutable` attribute to state variables that are only changed in the constructor
6425 | 
6426 | <details><summary>15 Found Instances</summary>
6427 | 
6428 | 
6429 | - Found in contracts/core/Exposure.sol [Line: 18](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L18)
6430 | 
6431 | 	```solidity
6432 | 	    IERC20 public revalToken;
6433 | 	```
6434 | 
6435 | - Found in contracts/core/OpsManager.sol [Line: 25](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L25)
6436 | 
6437 | 	```solidity
6438 | 	    Exposure public templeExposure;
6439 | 	```
6440 | 
6441 | - Found in contracts/core/OpsManager.sol [Line: 26](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L26)
6442 | 
6443 | 	```solidity
6444 | 	    VaultedTemple public vaultedTemple;
6445 | 	```
6446 | 
6447 | - Found in contracts/deprecated/InstantExitQueue.sol [Line: 14](../tests/2024-07-templegold/protocol/contracts/deprecated/InstantExitQueue.sol#L14)
6448 | 
6449 | 	```solidity
6450 | 	    TempleStaking templeStaking;
6451 | 	```
6452 | 
6453 | - Found in contracts/deprecated/InstantExitQueue.sol [Line: 15](../tests/2024-07-templegold/protocol/contracts/deprecated/InstantExitQueue.sol#L15)
6454 | 
6455 | 	```solidity
6456 | 	    IERC20 templeToken;
6457 | 	```
6458 | 
6459 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 21](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L21)
6460 | 
6461 | 	```solidity
6462 | 	  OGTemple public OG_TEMPLE; // The token being staked, for which TEMPLE rewards are generated
6463 | 	```
6464 | 
6465 | - Found in contracts/deprecated/TempleStaking.sol [Line: 29](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L29)
6466 | 
6467 | 	```solidity
6468 | 	    uint256 public epochSizeSeconds; 
6469 | 	```
6470 | 
6471 | - Found in contracts/deprecated/TempleStaking.sol [Line: 32](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L32)
6472 | 
6473 | 	```solidity
6474 | 	    uint256 public startTimestamp;
6475 | 	```
6476 | 
6477 | - Found in contracts/fakes/NoopLiquidator.sol [Line: 13](../tests/2024-07-templegold/protocol/contracts/fakes/NoopLiquidator.sol#L13)
6478 | 
6479 | 	```solidity
6480 | 	    TempleERC20Token templeToken;
6481 | 	```
6482 | 
6483 | - Found in contracts/fakes/NoopVaultedTempleLiquidator.sol [Line: 14](../tests/2024-07-templegold/protocol/contracts/fakes/NoopVaultedTempleLiquidator.sol#L14)
6484 | 
6485 | 	```solidity
6486 | 	    TempleERC20Token templeToken;
6487 | 	```
6488 | 
6489 | - Found in contracts/fakes/NoopVaultedTempleLiquidator.sol [Line: 15](../tests/2024-07-templegold/protocol/contracts/fakes/NoopVaultedTempleLiquidator.sol#L15)
6490 | 
6491 | 	```solidity
6492 | 	    VaultedTemple vaultedTemple;
6493 | 	```
6494 | 
6495 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 31](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L31)
6496 | 
6497 | 	```solidity
6498 | 	    ITempleGoldStaking public previousStaking;
6499 | 	```
6500 | 
6501 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 24](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L24)
6502 | 
6503 | 	```solidity
6504 | 	    uint256 public lastUpdatedAt;
6505 | 	```
6506 | 
6507 | - Found in contracts/governance/ElderElection.sol [Line: 41](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L41)
6508 | 
6509 | 	```solidity
6510 | 	    Templar public templars;
6511 | 	```
6512 | 
6513 | - Found in contracts/governance/TemplarMetadata.sol [Line: 18](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L18)
6514 | 
6515 | 	```solidity
6516 | 	    Templar public templars;
6517 | 	```
6518 | 
6519 | </details>
6520 | 
6521 | 
6522 | 
6523 | ## L-20: Unchecked Return
6524 | 
6525 | Function returns a value but it is ignored. Consider checking the return value.
6526 | 
6527 | <details><summary>30 Found Instances</summary>
6528 | 
6529 | 
6530 | - Found in contracts/amo/AuraStaking.sol [Line: 83](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L83)
6531 | 
6532 | 	```solidity
6533 | 	            booster.deposit(auraPoolInfo.pId, amount, true);
6534 | 	```
6535 | 
6536 | - Found in contracts/amo/AuraStaking.sol [Line: 93](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L93)
6537 | 
6538 | 	```solidity
6539 | 	            IAuraBaseRewardPool(auraPoolInfo.rewards).withdrawAndUnwrap(toUnstake, claim);
6540 | 	```
6541 | 
6542 | - Found in contracts/amo/AuraStaking.sol [Line: 111](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L111)
6543 | 
6544 | 	```solidity
6545 | 	        IAuraBaseRewardPool(auraPoolInfo.rewards).getReward(address(this), claimExtras);
6546 | 	```
6547 | 
6548 | - Found in contracts/amo/Ramos.sol [Line: 195](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L195)
6549 | 
6550 | 	```solidity
6551 | 	            protocolToken.approve(previousVault, 0);
6552 | 	```
6553 | 
6554 | - Found in contracts/amo/Ramos.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L196)
6555 | 
6556 | 	```solidity
6557 | 	            quoteToken.approve(previousVault, 0);
6558 | 	```
6559 | 
6560 | - Found in contracts/amo/Ramos.sol [Line: 489](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L489)
6561 | 
6562 | 	```solidity
6563 | 	                quoteToken.approve(address(balancerVault), 0);
6564 | 	```
6565 | 
6566 | - Found in contracts/core/MultiOtcOffer.sol [Line: 84](../tests/2024-07-templegold/protocol/contracts/core/MultiOtcOffer.sol#L84)
6567 | 
6568 | 	```solidity
6569 | 	        _otcMarketIds.remove(_marketId);
6570 | 	```
6571 | 
6572 | - Found in contracts/core/TempleERC20Token.sol [Line: 15](../tests/2024-07-templegold/protocol/contracts/core/TempleERC20Token.sol#L15)
6573 | 
6574 | 	```solidity
6575 | 	        _grantRole(DEFAULT_ADMIN_ROLE, owner());
6576 | 	```
6577 | 
6578 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L52)
6579 | 
6580 | 	```solidity
6581 | 	            IUniswapV2Factory(factory).createPair(tokenA, tokenB);
6582 | 	```
6583 | 
6584 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 108](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L108)
6585 | 
6586 | 	```solidity
6587 | 	        IUniswapV2Pair(pair).transferFrom(msg.sender, pair, liquidity); // send liquidity to pair
6588 | 	```
6589 | 
6590 | - Found in contracts/fakes/templegold/TempleTokenMock.sol [Line: 13](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleTokenMock.sol#L13)
6591 | 
6592 | 	```solidity
6593 | 	        _grantRole(DEFAULT_ADMIN_ROLE, owner());
6594 | 	```
6595 | 
6596 | - Found in contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol [Line: 28](../tests/2024-07-templegold/protocol/contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol#L28)
6597 | 
6598 | 	```solidity
6599 | 	        dUSD.burn(from, amount);
6600 | 	```
6601 | 
6602 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L52)
6603 | 
6604 | 	```solidity
6605 | 	        _checkpointDaiBalance(daiToken.balanceOf(address(this)));
6606 | 	```
6607 | 
6608 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 131](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L131)
6609 | 
6610 | 	```solidity
6611 | 	        _checkpointDaiBalance(daiToken.balanceOf(address(this)));
6612 | 	```
6613 | 
6614 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 181](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L181)
6615 | 
6616 | 	```solidity
6617 | 	        _checkpointDaiBalance(balance - amount);
6618 | 	```
6619 | 
6620 | - Found in contracts/governance/ElderElection.sol [Line: 61](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L61)
6621 | 
6622 | 	```solidity
6623 | 	        _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);
6624 | 	```
6625 | 
6626 | - Found in contracts/governance/Templar.sol [Line: 21](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L21)
6627 | 
6628 | 	```solidity
6629 | 	        _grantRole(OWNER, msg.sender);
6630 | 	```
6631 | 
6632 | - Found in contracts/governance/Templar.sol [Line: 22](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L22)
6633 | 
6634 | 	```solidity
6635 | 	        _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);
6636 | 	```
6637 | 
6638 | - Found in contracts/governance/TemplarMetadata.sol [Line: 22](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L22)
6639 | 
6640 | 	```solidity
6641 | 	        _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);
6642 | 	```
6643 | 
6644 | - Found in contracts/v2/TempleDebtToken.sol [Line: 149](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L149)
6645 | 
6646 | 	```solidity
6647 | 	        _getBaseCache();
6648 | 	```
6649 | 
6650 | - Found in contracts/v2/TempleDebtToken.sol [Line: 160](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L160)
6651 | 
6652 | 	```solidity
6653 | 	        _getDebtorCache(_getBaseCache(), debtor, true);
6654 | 	```
6655 | 
6656 | - Found in contracts/v2/TempleDebtToken.sol [Line: 638](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L638)
6657 | 
6658 | 	```solidity
6659 | 	        _initBaseCache(baseCache);
6660 | 	```
6661 | 
6662 | - Found in contracts/v2/TempleDebtToken.sol [Line: 752](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L752)
6663 | 
6664 | 	```solidity
6665 | 	        _initDebtorCache(_baseCache, _debtor, debtorCache, _roundUp);
6666 | 	```
6667 | 
6668 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 126](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L126)
6669 | 
6670 | 	```solidity
6671 | 	        _borrowTokenSet.add(address(token));
6672 | 	```
6673 | 
6674 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 138](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L138)
6675 | 
6676 | 	```solidity
6677 | 	        _borrowTokenSet.remove(address(token));
6678 | 	```
6679 | 
6680 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 318](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L318)
6681 | 
6682 | 	```solidity
6683 | 	        _strategySet.remove(strategy);
6684 | 	```
6685 | 
6686 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol [Line: 56](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#L56)
6687 | 
6688 | 	```solidity
6689 | 	        _identifiers.add(_identifier);
6690 | 	```
6691 | 
6692 | - Found in contracts/v2/strategies/RamosStrategy.sol [Line: 252](../tests/2024-07-templegold/protocol/contracts/v2/strategies/RamosStrategy.sol#L252)
6693 | 
6694 | 	```solidity
6695 | 	        ramos.removeLiquidity(params.requestData, params.bptAmount);
6696 | 	```
6697 | 
6698 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 394](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)
6699 | 
6700 | 	```solidity
6701 | 	            daiToken.approve(previousTrv, 0);
6702 | 	```
6703 | 
6704 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 680](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L680)
6705 | 
6706 | 	```solidity
6707 | 	        _initDebtTokenCache(cache);
6708 | 	```
6709 | 
6710 | </details>
6711 | 
6712 | 
6713 | 
6714 | ## L-21: Uninitialized Local Variable
6715 | 
6716 | Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
6717 | 
6718 | <details><summary>13 Found Instances</summary>
6719 | 
6720 | 
6721 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 128](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L128)
6722 | 
6723 | 	```solidity
6724 | 	        for (uint256 i; i < _dests.length; ) {
6725 | 	```
6726 | 
6727 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L50)
6728 | 
6729 | 	```solidity
6730 | 	        for (uint256 i; i < _addresses.length; ) {
6731 | 	```
6732 | 
6733 | - Found in contracts/amo/AuraStaking.sol [Line: 116](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L116)
6734 | 
6735 | 	```solidity
6736 | 	            for (uint i; i < length; ++i) {
6737 | 	```
6738 | 
6739 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 178](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L178)
6740 | 
6741 | 	```solidity
6742 | 	        for (uint i; i < path.length - 1; i++) {
6743 | 	```
6744 | 
6745 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 259](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L259)
6746 | 
6747 | 	```solidity
6748 | 	        for (uint i; i < path.length - 1; i++) {
6749 | 	```
6750 | 
6751 | - Found in contracts/v2/TempleDebtToken.sol [Line: 454](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L454)
6752 | 
6753 | 	```solidity
6754 | 	        for (uint256 i; i < _length; ++i) {
6755 | 	```
6756 | 
6757 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 187](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L187)
6758 | 
6759 | 	```solidity
6760 | 	        for (uint256 i; i < _length; ++i) {
6761 | 	```
6762 | 
6763 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 294](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L294)
6764 | 
6765 | 	```solidity
6766 | 	        for (uint256 i; i < _length; ++i) {
6767 | 	```
6768 | 
6769 | - Found in contracts/v2/access/TempleElevatedAccess.sol [Line: 112](../tests/2024-07-templegold/protocol/contracts/v2/access/TempleElevatedAccess.sol#L112)
6770 | 
6771 | 	```solidity
6772 | 	        for (uint256 i; i < _length; ++i) {
6773 | 	```
6774 | 
6775 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol [Line: 174](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L174)
6776 | 
6777 | 	```solidity
6778 | 	            for (uint256 i; i < _nBuckets; ++i) {
6779 | 	```
6780 | 
6781 | - Found in contracts/v2/safeGuards/ThresholdSafeGuard.sol [Line: 126](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/ThresholdSafeGuard.sol#L126)
6782 | 
6783 | 	```solidity
6784 | 	        for (uint256 i; i < length; ++i) {
6785 | 	```
6786 | 
6787 | - Found in contracts/v2/strategies/AbstractStrategy.sol [Line: 100](../tests/2024-07-templegold/protocol/contracts/v2/strategies/AbstractStrategy.sol#L100)
6788 | 
6789 | 	```solidity
6790 | 	        for (uint256 i; i < _length; ++i) {
6791 | 	```
6792 | 
6793 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 330](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L330)
6794 | 
6795 | 	```solidity
6796 | 	        for (uint256 i; i < _numAccounts; ++i) {
6797 | 	```
6798 | 
6799 | </details>
6800 | 
6801 | 
6802 | 
6803 | ## L-22: Unsafe ERC20 Operation
6804 | 
6805 | ERC20 functions may not behave as expected. For example: return values are not always meaningful. It is recommended to use OpenZeppelin's SafeERC20 library.
6806 | 
6807 | <details><summary>4 Found Instances</summary>
6808 | 
6809 | 
6810 | - Found in contracts/amo/Ramos.sol [Line: 195](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L195)
6811 | 
6812 | 	```solidity
6813 | 	            protocolToken.approve(previousVault, 0);
6814 | 	```
6815 | 
6816 | - Found in contracts/amo/Ramos.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L196)
6817 | 
6818 | 	```solidity
6819 | 	            quoteToken.approve(previousVault, 0);
6820 | 	```
6821 | 
6822 | - Found in contracts/amo/Ramos.sol [Line: 489](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L489)
6823 | 
6824 | 	```solidity
6825 | 	                quoteToken.approve(address(balancerVault), 0);
6826 | 	```
6827 | 
6828 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 394](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)
6829 | 
6830 | 	```solidity
6831 | 	            daiToken.approve(previousTrv, 0);
6832 | 	```
6833 | 
6834 | </details>
6835 | 
6836 | 
6837 | 
6838 | ## L-23: Unspecific Solidity Pragma
6839 | 
6840 | Consider using a specific version of Solidity in your contracts instead of a wide version. For example, instead of `pragma solidity ^0.8.0;`, use `pragma solidity 0.8.0;`
6841 | 
6842 | <details><summary>71 Found Instances</summary>
6843 | 
6844 | 
6845 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 2](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L2)
6846 | 
6847 | 	```solidity
6848 | 	pragma solidity ^0.8.0;
6849 | 	```
6850 | 
6851 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 2](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L2)
6852 | 
6853 | 	```solidity
6854 | 	pragma solidity ^0.8.4;
6855 | 	```
6856 | 
6857 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 2](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L2)
6858 | 
6859 | 	```solidity
6860 | 	pragma solidity ^0.8.4;
6861 | 	```
6862 | 
6863 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L1)
6864 | 
6865 | 	```solidity
6866 | 	pragma solidity ^0.8.4;
6867 | 	```
6868 | 
6869 | - Found in contracts/amm/TreasuryIV.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/amm/TreasuryIV.sol#L1)
6870 | 
6871 | 	```solidity
6872 | 	pragma solidity ^0.8.4;
6873 | 	```
6874 | 
6875 | - Found in contracts/amo/AuraStaking.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L1)
6876 | 
6877 | 	```solidity
6878 | 	pragma solidity ^0.8.20;
6879 | 	```
6880 | 
6881 | - Found in contracts/amo/Ramos.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L1)
6882 | 
6883 | 	```solidity
6884 | 	pragma solidity ^0.8.20;
6885 | 	```
6886 | 
6887 | - Found in contracts/core/Exposure.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L1)
6888 | 
6889 | 	```solidity
6890 | 	pragma solidity ^0.8.4;
6891 | 	```
6892 | 
6893 | - Found in contracts/core/JoiningFee.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/JoiningFee.sol#L1)
6894 | 
6895 | 	```solidity
6896 | 	pragma solidity ^0.8.4;
6897 | 	```
6898 | 
6899 | - Found in contracts/core/MultiOtcOffer.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/MultiOtcOffer.sol#L1)
6900 | 
6901 | 	```solidity
6902 | 	pragma solidity ^0.8.20;
6903 | 	```
6904 | 
6905 | - Found in contracts/core/OpsManager.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L1)
6906 | 
6907 | 	```solidity
6908 | 	pragma solidity ^0.8.4;
6909 | 	```
6910 | 
6911 | - Found in contracts/core/OtcOffer.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L1)
6912 | 
6913 | 	```solidity
6914 | 	pragma solidity ^0.8.20;
6915 | 	```
6916 | 
6917 | - Found in contracts/core/Rational.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/Rational.sol#L1)
6918 | 
6919 | 	```solidity
6920 | 	pragma solidity ^0.8.4;
6921 | 	```
6922 | 
6923 | - Found in contracts/core/RebasingERC20.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/RebasingERC20.sol#L1)
6924 | 
6925 | 	```solidity
6926 | 	pragma solidity ^0.8.4;
6927 | 	```
6928 | 
6929 | - Found in contracts/core/TempleERC20Token.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/TempleERC20Token.sol#L1)
6930 | 
6931 | 	```solidity
6932 | 	pragma solidity ^0.8.4;
6933 | 	```
6934 | 
6935 | - Found in contracts/core/TreasuryFarmingRevenue.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/TreasuryFarmingRevenue.sol#L1)
6936 | 
6937 | 	```solidity
6938 | 	pragma solidity ^0.8.4;
6939 | 	```
6940 | 
6941 | - Found in contracts/core/Vault.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L1)
6942 | 
6943 | 	```solidity
6944 | 	pragma solidity ^0.8.4;
6945 | 	```
6946 | 
6947 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L1)
6948 | 
6949 | 	```solidity
6950 | 	pragma solidity ^0.8.4;
6951 | 	```
6952 | 
6953 | - Found in contracts/core/VaultProxy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L1)
6954 | 
6955 | 	```solidity
6956 | 	pragma solidity ^0.8.4;
6957 | 	```
6958 | 
6959 | - Found in contracts/core/VaultedTemple.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/VaultedTemple.sol#L1)
6960 | 
6961 | 	```solidity
6962 | 	pragma solidity ^0.8.4;
6963 | 	```
6964 | 
6965 | - Found in contracts/deprecated/Faith.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L1)
6966 | 
6967 | 	```solidity
6968 | 	pragma solidity ^0.8.4;
6969 | 	```
6970 | 
6971 | - Found in contracts/deprecated/IExitQueue.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/deprecated/IExitQueue.sol#L1)
6972 | 
6973 | 	```solidity
6974 | 	pragma solidity ^0.8.4;
6975 | 	```
6976 | 
6977 | - Found in contracts/deprecated/InstantExitQueue.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/deprecated/InstantExitQueue.sol#L1)
6978 | 
6979 | 	```solidity
6980 | 	pragma solidity ^0.8.4;
6981 | 	```
6982 | 
6983 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L1)
6984 | 
6985 | 	```solidity
6986 | 	pragma solidity ^0.8.4;
6987 | 	```
6988 | 
6989 | - Found in contracts/deprecated/OGTemple.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/deprecated/OGTemple.sol#L1)
6990 | 
6991 | 	```solidity
6992 | 	pragma solidity ^0.8.4;
6993 | 	```
6994 | 
6995 | - Found in contracts/deprecated/TempleStaking.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L1)
6996 | 
6997 | 	```solidity
6998 | 	pragma solidity ^0.8.4;
6999 | 	```
7000 | 
7001 | - Found in contracts/fakes/FakeERC20.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/FakeERC20.sol#L1)
7002 | 
7003 | 	```solidity
7004 | 	pragma solidity ^0.8.20;
7005 | 	```
7006 | 
7007 | - Found in contracts/fakes/FakeERC20CustomDecimals.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/FakeERC20CustomDecimals.sol#L1)
7008 | 
7009 | 	```solidity
7010 | 	pragma solidity ^0.8.20;
7011 | 	```
7012 | 
7013 | - Found in contracts/fakes/NoopLiquidator.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/NoopLiquidator.sol#L1)
7014 | 
7015 | 	```solidity
7016 | 	pragma solidity ^0.8.4;
7017 | 	```
7018 | 
7019 | - Found in contracts/fakes/NoopVaultedTempleLiquidator.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/NoopVaultedTempleLiquidator.sol#L1)
7020 | 
7021 | 	```solidity
7022 | 	pragma solidity ^0.8.4;
7023 | 	```
7024 | 
7025 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L1)
7026 | 
7027 | 	```solidity
7028 | 	pragma solidity ^0.8.20;
7029 | 	```
7030 | 
7031 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L1)
7032 | 
7033 | 	```solidity
7034 | 	pragma solidity ^0.8.20;
7035 | 	```
7036 | 
7037 | - Found in contracts/fakes/templegold/TempleTokenMock.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleTokenMock.sol#L1)
7038 | 
7039 | 	```solidity
7040 | 	pragma solidity ^0.8.20;
7041 | 	```
7042 | 
7043 | - Found in contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol#L1)
7044 | 
7045 | 	```solidity
7046 | 	pragma solidity ^0.8.20;
7047 | 	```
7048 | 
7049 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L1)
7050 | 
7051 | 	```solidity
7052 | 	pragma solidity ^0.8.20;
7053 | 	```
7054 | 
7055 | - Found in contracts/governance/ElderElection.sol [Line: 2](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L2)
7056 | 
7057 | 	```solidity
7058 | 	pragma solidity ^0.8.4;
7059 | 	```
7060 | 
7061 | - Found in contracts/governance/Templar.sol [Line: 2](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L2)
7062 | 
7063 | 	```solidity
7064 | 	pragma solidity ^0.8.4;
7065 | 	```
7066 | 
7067 | - Found in contracts/governance/TemplarMetadata.sol [Line: 2](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L2)
7068 | 
7069 | 	```solidity
7070 | 	pragma solidity ^0.8.4;
7071 | 	```
7072 | 
7073 | - Found in contracts/interfaces/core/ITempleERC20Token.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/core/ITempleERC20Token.sol#L1)
7074 | 
7075 | 	```solidity
7076 | 	pragma solidity ^0.8.20;
7077 | 	```
7078 | 
7079 | - Found in contracts/interfaces/templegold/IAuctionBase.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/IAuctionBase.sol#L1)
7080 | 
7081 | 	```solidity
7082 | 	pragma solidity ^0.8.20;
7083 | 	```
7084 | 
7085 | - Found in contracts/interfaces/templegold/IDaiGoldAuction.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/IDaiGoldAuction.sol#L1)
7086 | 
7087 | 	```solidity
7088 | 	pragma solidity ^0.8.20;
7089 | 	```
7090 | 
7091 | - Found in contracts/interfaces/templegold/ISpiceAuction.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ISpiceAuction.sol#L1)
7092 | 
7093 | 	```solidity
7094 | 	pragma solidity ^0.8.20;
7095 | 	```
7096 | 
7097 | - Found in contracts/interfaces/templegold/ISpiceAuctionFactory.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ISpiceAuctionFactory.sol#L1)
7098 | 
7099 | 	```solidity
7100 | 	pragma solidity ^0.8.20;
7101 | 	```
7102 | 
7103 | - Found in contracts/interfaces/templegold/ITempleGold.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ITempleGold.sol#L1)
7104 | 
7105 | 	```solidity
7106 | 	pragma solidity ^0.8.20;
7107 | 	```
7108 | 
7109 | - Found in contracts/interfaces/templegold/ITempleGoldAdmin.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ITempleGoldAdmin.sol#L1)
7110 | 
7111 | 	```solidity
7112 | 	pragma solidity ^0.8.20;
7113 | 	```
7114 | 
7115 | - Found in contracts/interfaces/templegold/ITempleGoldStaking.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ITempleGoldStaking.sol#L1)
7116 | 
7117 | 	```solidity
7118 | 	pragma solidity ^0.8.20;
7119 | 	```
7120 | 
7121 | - Found in contracts/interfaces/templegold/ITempleTeleporter.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ITempleTeleporter.sol#L1)
7122 | 
7123 | 	```solidity
7124 | 	pragma solidity ^0.8.20;
7125 | 	```
7126 | 
7127 | - Found in contracts/templegold/AuctionBase.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/AuctionBase.sol#L1)
7128 | 
7129 | 	```solidity
7130 | 	pragma solidity ^0.8.20;
7131 | 	```
7132 | 
7133 | - Found in contracts/templegold/DaiGoldAuction.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/DaiGoldAuction.sol#L1)
7134 | 
7135 | 	```solidity
7136 | 	pragma solidity ^0.8.20;
7137 | 	```
7138 | 
7139 | - Found in contracts/templegold/SpiceAuction.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L1)
7140 | 
7141 | 	```solidity
7142 | 	pragma solidity ^0.8.20;
7143 | 	```
7144 | 
7145 | - Found in contracts/templegold/SpiceAuctionFactory.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuctionFactory.sol#L1)
7146 | 
7147 | 	```solidity
7148 | 	pragma solidity ^0.8.20;
7149 | 	```
7150 | 
7151 | - Found in contracts/templegold/TempleGold.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L1)
7152 | 
7153 | 	```solidity
7154 | 	pragma solidity ^0.8.20;
7155 | 	```
7156 | 
7157 | - Found in contracts/templegold/TempleGoldAdmin.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldAdmin.sol#L1)
7158 | 
7159 | 	```solidity
7160 | 	pragma solidity ^0.8.20;
7161 | 	```
7162 | 
7163 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L1)
7164 | 
7165 | 	```solidity
7166 | 	pragma solidity ^0.8.20;
7167 | 	```
7168 | 
7169 | - Found in contracts/templegold/TempleTeleporter.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/TempleTeleporter.sol#L1)
7170 | 
7171 | 	```solidity
7172 | 	pragma solidity ^0.8.20;
7173 | 	```
7174 | 
7175 | - Found in contracts/v2/TempleDebtToken.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L1)
7176 | 
7177 | 	```solidity
7178 | 	pragma solidity ^0.8.20;
7179 | 	```
7180 | 
7181 | - Found in contracts/v2/TreasuryPriceIndexOracle.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryPriceIndexOracle.sol#L1)
7182 | 
7183 | 	```solidity
7184 | 	pragma solidity ^0.8.20;
7185 | 	```
7186 | 
7187 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L1)
7188 | 
7189 | 	```solidity
7190 | 	pragma solidity ^0.8.20;
7191 | 	```
7192 | 
7193 | - Found in contracts/v2/access/TempleElevatedAccess.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/access/TempleElevatedAccess.sol#L1)
7194 | 
7195 | 	```solidity
7196 | 	pragma solidity ^0.8.20;
7197 | 	```
7198 | 
7199 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L1)
7200 | 
7201 | 	```solidity
7202 | 	pragma solidity ^0.8.20;
7203 | 	```
7204 | 
7205 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#L1)
7206 | 
7207 | 	```solidity
7208 | 	pragma solidity ^0.8.20;
7209 | 	```
7210 | 
7211 | - Found in contracts/v2/interestRate/BaseInterestRateModel.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/interestRate/BaseInterestRateModel.sol#L1)
7212 | 
7213 | 	```solidity
7214 | 	pragma solidity ^0.8.20;
7215 | 	```
7216 | 
7217 | - Found in contracts/v2/interestRate/LinearWithKinkInterestRateModel.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/interestRate/LinearWithKinkInterestRateModel.sol#L1)
7218 | 
7219 | 	```solidity
7220 | 	pragma solidity ^0.8.20;
7221 | 	```
7222 | 
7223 | - Found in contracts/v2/safeGuards/ThresholdSafeGuard.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/ThresholdSafeGuard.sol#L1)
7224 | 
7225 | 	```solidity
7226 | 	pragma solidity ^0.8.20;
7227 | 	```
7228 | 
7229 | - Found in contracts/v2/strategies/AbstractStrategy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/strategies/AbstractStrategy.sol#L1)
7230 | 
7231 | 	```solidity
7232 | 	pragma solidity ^0.8.20;
7233 | 	```
7234 | 
7235 | - Found in contracts/v2/strategies/DsrBaseStrategy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/strategies/DsrBaseStrategy.sol#L1)
7236 | 
7237 | 	```solidity
7238 | 	pragma solidity ^0.8.20;
7239 | 	```
7240 | 
7241 | - Found in contracts/v2/strategies/GnosisStrategy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/strategies/GnosisStrategy.sol#L1)
7242 | 
7243 | 	```solidity
7244 | 	pragma solidity ^0.8.20;
7245 | 	```
7246 | 
7247 | - Found in contracts/v2/strategies/RamosStrategy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/strategies/RamosStrategy.sol#L1)
7248 | 
7249 | 	```solidity
7250 | 	pragma solidity ^0.8.20;
7251 | 	```
7252 | 
7253 | - Found in contracts/v2/strategies/TempleTokenBaseStrategy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol#L1)
7254 | 
7255 | 	```solidity
7256 | 	pragma solidity ^0.8.20;
7257 | 	```
7258 | 
7259 | - Found in contracts/v2/strategies/TlcStrategy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/strategies/TlcStrategy.sol#L1)
7260 | 
7261 | 	```solidity
7262 | 	pragma solidity ^0.8.20;
7263 | 	```
7264 | 
7265 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L1)
7266 | 
7267 | 	```solidity
7268 | 	pragma solidity ^0.8.20;
7269 | 	```
7270 | 
7271 | </details>
7272 | 
7273 | 
7274 | 
7275 | ## L-24: Unused Error
7276 | 
7277 | Consider using or removing the unused error.
7278 | 
7279 | <details><summary>12 Found Instances</summary>
7280 | 
7281 | 
7282 | - Found in contracts/amo/helpers/AMOCommon.sol [Line: 6](../tests/2024-07-templegold/protocol/contracts/amo/helpers/AMOCommon.sol#L6)
7283 | 
7284 | 	```solidity
7285 | 	    error NotOperator();
7286 | 	```
7287 | 
7288 | - Found in contracts/amo/helpers/AMOCommon.sol [Line: 7](../tests/2024-07-templegold/protocol/contracts/amo/helpers/AMOCommon.sol#L7)
7289 | 
7290 | 	```solidity
7291 | 	    error NotOperatorOrOwner();
7292 | 	```
7293 | 
7294 | - Found in contracts/amo/helpers/AMOCommon.sol [Line: 11](../tests/2024-07-templegold/protocol/contracts/amo/helpers/AMOCommon.sol#L11)
7295 | 
7296 | 	```solidity
7297 | 	    error InsufficientBPTAmount(uint256 amount);
7298 | 	```
7299 | 
7300 | - Found in contracts/amo/helpers/AMOCommon.sol [Line: 19](../tests/2024-07-templegold/protocol/contracts/amo/helpers/AMOCommon.sol#L19)
7301 | 
7302 | 	```solidity
7303 | 	    error Paused();
7304 | 	```
7305 | 
7306 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 31](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L31)
7307 | 
7308 | 	```solidity
7309 | 	    error SendFailed();
7310 | 	```
7311 | 
7312 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 108](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L108)
7313 | 
7314 | 	```solidity
7315 | 	    error InvalidDelegate();
7316 | 	```
7317 | 
7318 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 111](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L111)
7319 | 
7320 | 	```solidity
7321 | 	    error MinimumStakePeriod();
7322 | 	```
7323 | 
7324 | - Found in contracts/governance/ElderElection.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L49)
7325 | 
7326 | 	```solidity
7327 | 	    error NotFromTemplar(address account, uint256 discordId);
7328 | 	```
7329 | 
7330 | - Found in contracts/governance/ElderElection.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L50)
7331 | 
7332 | 	```solidity
7333 | 	    error NotCandidate(uint256 discordId);
7334 | 	```
7335 | 
7336 | - Found in contracts/interfaces/templegold/ISpiceAuction.sol [Line: 14](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ISpiceAuction.sol#L14)
7337 | 
7338 | 	```solidity
7339 | 	    error NoConfig();
7340 | 	```
7341 | 
7342 | - Found in contracts/interfaces/templegold/ITempleGoldStaking.sol [Line: 21](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ITempleGoldStaking.sol#L21)
7343 | 
7344 | 	```solidity
7345 | 	    error CannotDelegate();
7346 | 	```
7347 | 
7348 | - Found in contracts/interfaces/v2/safeGuards/IThresholdSafeGuard.sol [Line: 16](../tests/2024-07-templegold/protocol/contracts/interfaces/v2/safeGuards/IThresholdSafeGuard.sol#L16)
7349 | 
7350 | 	```solidity
7351 | 	    error DynamicSignatureThresholdNotMet(uint256 required, uint256 found);
7352 | 	```
7353 | 
7354 | </details>
7355 | 
7356 | 
7357 | 
7358 | ## L-25: Unused Import
7359 | 
7360 | Redundant import statement. Consider removing it.
7361 | 
7362 | <details><summary>14 Found Instances</summary>
7363 | 
7364 | 
7365 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 8](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L8)
7366 | 
7367 | 	```solidity
7368 | 	import "@openzeppelin/contracts/access/AccessControl.sol";
7369 | 	```
7370 | 
7371 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 4](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L4)
7372 | 
7373 | 	```solidity
7374 | 	import '@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol';
7375 | 	```
7376 | 
7377 | - Found in contracts/core/TempleERC20Token.sol [Line: 7](../tests/2024-07-templegold/protocol/contracts/core/TempleERC20Token.sol#L7)
7378 | 
7379 | 	```solidity
7380 | 	import "@openzeppelin/contracts/utils/Pausable.sol";
7381 | 	```
7382 | 
7383 | - Found in contracts/deprecated/OGTemple.sol [Line: 7](../tests/2024-07-templegold/protocol/contracts/deprecated/OGTemple.sol#L7)
7384 | 
7385 | 	```solidity
7386 | 	import "@openzeppelin/contracts/utils/Pausable.sol";
7387 | 	```
7388 | 
7389 | - Found in contracts/deprecated/OGTemple.sol [Line: 9](../tests/2024-07-templegold/protocol/contracts/deprecated/OGTemple.sol#L9)
7390 | 
7391 | 	```solidity
7392 | 	import "@openzeppelin/contracts/access/AccessControl.sol";
7393 | 	```
7394 | 
7395 | - Found in contracts/fakes/NoopLiquidator.sol [Line: 4](../tests/2024-07-templegold/protocol/contracts/fakes/NoopLiquidator.sol#L4)
7396 | 
7397 | 	```solidity
7398 | 	import "@openzeppelin/contracts/access/Ownable.sol";
7399 | 	```
7400 | 
7401 | - Found in contracts/fakes/NoopVaultedTempleLiquidator.sol [Line: 4](../tests/2024-07-templegold/protocol/contracts/fakes/NoopVaultedTempleLiquidator.sol#L4)
7402 | 
7403 | 	```solidity
7404 | 	import "@openzeppelin/contracts/access/Ownable.sol";
7405 | 	```
7406 | 
7407 | - Found in contracts/fakes/UniswapV2Factory.sol [Line: 6](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Factory.sol#L6)
7408 | 
7409 | 	```solidity
7410 | 	import '@uniswap/v2-core/contracts/UniswapV2Factory.sol';
7411 | 	```
7412 | 
7413 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 17](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L17)
7414 | 
7415 | 	```solidity
7416 | 	import '@uniswap/v2-periphery/contracts/interfaces/IWETH.sol';
7417 | 	```
7418 | 
7419 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 10](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L10)
7420 | 
7421 | 	```solidity
7422 | 	import { IDaiGoldAuction } from "contracts/interfaces/templegold/IDaiGoldAuction.sol";
7423 | 	```
7424 | 
7425 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 13](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L13)
7426 | 
7427 | 	```solidity
7428 | 	import { ITempleGoldStaking}  from "contracts/interfaces/templegold/ITempleGoldStaking.sol";
7429 | 	```
7430 | 
7431 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 17](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L17)
7432 | 
7433 | 	```solidity
7434 | 	import { TempleMath } from "contracts/common/TempleMath.sol";
7435 | 	```
7436 | 
7437 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 6](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L6)
7438 | 
7439 | 	```solidity
7440 | 	import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
7441 | 	```
7442 | 
7443 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 6](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L6)
7444 | 
7445 | 	```solidity
7446 | 	import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
7447 | 	```
7448 | 
7449 | </details>
7450 | 
7451 | 
7452 | 
7453 | ## L-26: Public Function Not Used Internally
7454 | 
7455 | If a function is marked public but is not used internally, consider marking it as `external`.
7456 | 
7457 | <details><summary>17 Found Instances</summary>
7458 | 
7459 | 
7460 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 25](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L25)
7461 | 
7462 | 	```solidity
7463 | 	    function initialize(IERC20 _temple) public initializer {
7464 | 	```
7465 | 
7466 | - Found in contracts/core/OpsManagerLib.sol [Line: 12](../tests/2024-07-templegold/protocol/contracts/core/OpsManagerLib.sol#L12)
7467 | 
7468 | 	```solidity
7469 | 	    function createExposure(
7470 | 	```
7471 | 
7472 | - Found in contracts/core/OpsManagerLib.sol [Line: 32](../tests/2024-07-templegold/protocol/contracts/core/OpsManagerLib.sol#L32)
7473 | 
7474 | 	```solidity
7475 | 	    function setExposureLiquidator(
7476 | 	```
7477 | 
7478 | - Found in contracts/core/OpsManagerLib.sol [Line: 45](../tests/2024-07-templegold/protocol/contracts/core/OpsManagerLib.sol#L45)
7479 | 
7480 | 	```solidity
7481 | 	    function setExposureMinterState(
7482 | 	```
7483 | 
7484 | - Found in contracts/core/OpsManagerLib.sol [Line: 55](../tests/2024-07-templegold/protocol/contracts/core/OpsManagerLib.sol#L55)
7485 | 
7486 | 	```solidity
7487 | 	    function rebalance(
7488 | 	```
7489 | 
7490 | - Found in contracts/core/OpsManagerLib.sol [Line: 79](../tests/2024-07-templegold/protocol/contracts/core/OpsManagerLib.sol#L79)
7491 | 
7492 | 	```solidity
7493 | 	    function requiresRebalance(
7494 | 	```
7495 | 
7496 | - Found in contracts/core/OpsManagerLib.sol [Line: 97](../tests/2024-07-templegold/protocol/contracts/core/OpsManagerLib.sol#L97)
7497 | 
7498 | 	```solidity
7499 | 	    function updateExposureReval(IERC20[] memory exposureTokens, uint256[] memory revals, mapping(IERC20 => TreasuryFarmingRevenue) storage pools) public {
7500 | 	```
7501 | 
7502 | - Found in contracts/core/TreasuryFarmingRevenue.sol [Line: 48](../tests/2024-07-templegold/protocol/contracts/core/TreasuryFarmingRevenue.sol#L48)
7503 | 
7504 | 	```solidity
7505 | 	    function addRevenue(uint256 revenueEarned) onlyOwner public {
7506 | 	```
7507 | 
7508 | - Found in contracts/core/Vault.sol [Line: 86](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L86)
7509 | 
7510 | 	```solidity
7511 | 	    function withdraw(uint256 amount) public {
7512 | 	```
7513 | 
7514 | - Found in contracts/core/Vault.sol [Line: 96](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L96)
7515 | 
7516 | 	```solidity
7517 | 	    function withdrawFor(address owner, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {
7518 | 	```
7519 | 
7520 | - Found in contracts/core/Vault.sol [Line: 167](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L167)
7521 | 
7522 | 	```solidity
7523 | 	    function deposit(uint256 amount) public {
7524 | 	```
7525 | 
7526 | - Found in contracts/core/VaultProxy.sol [Line: 58](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L58)
7527 | 
7528 | 	```solidity
7529 | 	    function depositTempleWithFaith(uint256 _amountTemple, uint112 _amountFaith, Vault vault) public {
7530 | 	```
7531 | 
7532 | - Found in contracts/core/VaultProxy.sol [Line: 109](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L109)
7533 | 
7534 | 	```solidity
7535 | 	    function depositTempleFor(uint256 _amount, Vault vault) public {
7536 | 	```
7537 | 
7538 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 77](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L77)
7539 | 
7540 | 	```solidity
7541 | 	    function circulatingSupply() public view returns (uint256) {
7542 | 	```
7543 | 
7544 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 431](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L431)
7545 | 
7546 | 	```solidity
7547 | 	    function balanceOf(address account) public view returns (uint256) {
7548 | 	```
7549 | 
7550 | - Found in contracts/governance/Templar.sol [Line: 65](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L65)
7551 | 
7552 | 	```solidity
7553 | 	    function checkExists(uint256 discordId) public view {
7554 | 	```
7555 | 
7556 | - Found in contracts/templegold/TempleGoldAdmin.sol [Line: 107](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldAdmin.sol#L107)
7557 | 
7558 | 	```solidity
7559 | 	    function setDelegate(address _delegate) public onlyElevatedAccess {
7560 | 	```
7561 | 
7562 | </details>
7563 | 
7564 | 
7565 | 
7566 | ## L-27: Unused State Variable
7567 | 
7568 | State variable appears to be unused. No analysis has been performed to see if any inline assembly references it. Consider removing this unused variable.
7569 | 
7570 | <details><summary>2 Found Instances</summary>
7571 | 
7572 | 
7573 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 71](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L71)
7574 | 
7575 | 	```solidity
7576 | 	    mapping(address delegate => uint256 balance) private _delegateBalances;
7577 | 	```
7578 | 
7579 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 79](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L79)
7580 | 
7581 | 	```solidity
7582 | 	    mapping(address account => EnumerableSet.UintSet indexes) private _accountStakes;
7583 | 	```
7584 | 
7585 | </details>
7586 | 
7587 | 
7588 | 
7589 | 
```
Page 103/103FirstPrevNextLast