{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"8ef6d2aa-6d6a-4217-b9bb-9116b02a8867","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"59305c30063eaf2f920b271cc6218428f7c3789acc0e2fd52063ea642626f153","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_economics","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"2ed26b272aa40051fe648be6d5c993a92bc7adf2083f8c5f1ad6066fdc02a744","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_flow","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"c7031ee3e75e91884c119e80cc5b54638432e524f07702eaeba13f753080a2e9","dependsOn":["build_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","state":"accepted"},{"acceptedSubmissionHash":"4842132cd5de044e46d3f6f9c1d162e3516230af36ea5265dc8c00838e8ca10d","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_math","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"d75993419349f1fa43c1ed35200853ac13113479ff67c14d24a0d13045943710","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_permissions","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"2cc555aaf9656c78b662ea8c11ac21c72b03124f4afb256c3df67febf6de08f9","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"6b8d2c2ebd3301cff2be8edb1e1cc6ba65c858c02fe7247be81722b969842265","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"6b8d2c2ebd3301cff2be8edb1e1cc6ba65c858c02fe7247be81722b969842265","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"78bbd1a906f3a725c2b27a78fe0e6e20cd665199f72705d881fcaf3d0daa5867","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"ab9e2c6c6db7d70bf22d5ed1a45456c3177240f3cb959b6c2125c1576c969f7c","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","state":"accepted"}],"objective":"A custom token: IMD Tools (TOOLS).\nToken name: IMD Tools\nToken symbol: TOOLS\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"075f544584fb7e3847286150be7e32bb570365aa1fe7c2bdc1c4070de6ae2a67","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"8ef6d2aa-6d6a-4217-b9bb-9116b02a8867","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1727-imd-tools"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"51346","feedbackHash":"3d45a63fd09bc041b758f0714e67b7cbad113034741f2c9f7aca4c125f2656e3","nodeKey":"audit_economics","submissionHash":"59305c30063eaf2f920b271cc6218428f7c3789acc0e2fd52063ea642626f153","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52171","feedbackHash":"9c3a2db87e032ee84e3efc68f79608ce22d6cb84ee8b2391a308c7fdbf61ef36","nodeKey":"audit_flow","submissionHash":"2ed26b272aa40051fe648be6d5c993a92bc7adf2083f8c5f1ad6066fdc02a744","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52585","feedbackHash":"3732ca2bc259d2993a6d2953999cf985f35ee92a7e711c7e72dbc1fac71da08e","nodeKey":"audit_judge","submissionHash":"c7031ee3e75e91884c119e80cc5b54638432e524f07702eaeba13f753080a2e9","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52617","feedbackHash":"5f57eedebdb6b1ad5c92ad31e3178353756f45b17486d7fb9514a1daf6d407e9","nodeKey":"audit_math","submissionHash":"4842132cd5de044e46d3f6f9c1d162e3516230af36ea5265dc8c00838e8ca10d","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51338","feedbackHash":"31191ce928c367192281b37b9dc005f69a50b0816d6de01a06deb535501afd64","nodeKey":"audit_permissions","submissionHash":"d75993419349f1fa43c1ed35200853ac13113479ff67c14d24a0d13045943710","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51556","feedbackHash":"0324b2e0bc398dd12f682936b7edde2c7ab9937d3a9cced590406d10edc20aad","nodeKey":"build_contract_project","submissionHash":"2cc555aaf9656c78b662ea8c11ac21c72b03124f4afb256c3df67febf6de08f9","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52141","feedbackHash":"aa6a40016c0f919120f8280867c5eb90fbd8956cd8abcc1081170fda5d56787f","nodeKey":"manifest","submissionHash":"78bbd1a906f3a725c2b27a78fe0e6e20cd665199f72705d881fcaf3d0daa5867","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52140","feedbackHash":"6b31692bd84ef569fb2f46b725d58e75a291ad1c763ff332ceae848d2173d5cc","nodeKey":"write_foundry_tests","submissionHash":"ab9e2c6c6db7d70bf22d5ed1a45456c3177240f3cb959b6c2125c1576c969f7c","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"a9af031af38d44b7eeb49cd5db9a711052443962850de3b5ff77b4808946a88a","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"d05d2f05d841f91ee7946b19aabc1cd52c955e088ee2d90988568a3a5cb8c03c","device":"f01afe38b46a5f7e","findings":[],"hash":"2cc555aaf9656c78b662ea8c11ac21c72b03124f4afb256c3df67febf6de08f9","nodeId":"5b220629-7eb3-4379-8822-e924b35e5905","outcome":"completed","summary":"Implemented IMD Tools (TOOLS) with 18 decimals and exactly 1,000,000,000 tokens minted once to the deployer. No later minting or administrative powers.\n\nDependencies are vendored; deployment parameters, assumptions, and operational responsibilities are documented in README.md.\n\nVerified `forge build`, `forge test`, and `forge fmt --check`. All 32 tests passed with the supplied fuzz seed, including a clean offline verification.","treeHash":"fa5134059b7db64a79df04d0028144e19a6350fa","usage":{"cachedInputTokens":461568,"inputTokens":64843,"model":"gpt-6-astra","outputTokens":15745,"runtime":"codex","turns":5,"wallClockMs":402580}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"2e0556e0bee1a109","findings":[],"hash":"2ed26b272aa40051fe648be6d5c993a92bc7adf2083f8c5f1ad6066fdc02a744","nodeId":"00434135-1b96-4213-99a5-9c6ff8cee436","outcome":"completed","summary":"The review is complete and found no defects. The findings file holds an empty list and a coverage row for every entry point, and the working tree is unchanged apart from that file.\n\n**What I checked**\n\n- **Execution Trace.** I traced `approve`, `transfer` and `transferFrom` through the vendored OpenZeppelin code to their final storage writes. Amounts move exactly, zero addresses revert, self-transfers read fresh storage, and a failed `transferFrom` leaves the allowance intact. The approve race condition is the only residual and the README documents it.\n- **Periphery.** The five vendored OpenZeppelin files are byte-identical by SHA-256 to upstream v5.0.2. The context helper returns the plain caller, with no forwarder. Decimals are hardcoded to 18 and match the manifest.\n- **First Principles.** The constructor takes no arguments, is nonpayable, and mints the whole supply once to its caller. A scratch test deploying via CREATE2 from a factory address with existing code confirmed the factory receives all of it, with no allowance granted to anyone. Unknown selectors and plain ETH revert, since there is no receive or fallback function.\n- **Static-analysis lead.** The Aderyn large-literal warning is stylistic. I confirmed the constant evaluates to exactly 10^27 base units.\n- **Tooling.** The build, the 32 repository tests with the README's fuzz seed, formatting of the tracked files, and my four scratch tests all passed. I removed the scratch directory afterwards.\n\n**Coverage.** All three listed entry points plus the constructor are marked `holds`, with additional rows for fixed supply, absence of privileged roles, the vendored library, and the forbidden-opcode scan. Nothing was left unreached.\n\n**Out of scope.** The launch manifest is not present in the tree yet, which is expected before the manifest step. No live-chain or Uniswap v4 pool test was run, since the protected suite is the verifier's.","treeHash":null,"usage":{"cachedInputTokens":529447,"inputTokens":226,"model":"claude-fable-5-1","outputTokens":12511,"runtime":"claude","turns":25,"wallClockMs":187308}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"76df9026b98e4277","findings":[],"hash":"4842132cd5de044e46d3f6f9c1d162e3516230af36ea5265dc8c00838e8ca10d","nodeId":"bf7b091e-e10c-4ec5-974d-2be3e35cf521","outcome":"completed","summary":"The review is complete and written to `.imd-findings.json`. No substantiated defects in the Math Precision, Boundary or Numerical Gap areas.\n\n**What was reviewed.** The token is 17 lines over an unmodified OpenZeppelin v5.0.2 ERC-20, with one constant mint of 1e27 base units to the deployer and no overrides. I checked every failure mode in the three assigned guides against it and against the inherited arithmetic in `_update` and `_spendAllowance`, then confirmed the edge cases with a scratch Foundry suite instead of trusting the read.\n\n**Why each guide came up clean.**\n- Math Precision: the only arithmetic is the constant-folded literal and OpenZeppelin's checked-then-unchecked balance and allowance updates. There is no division, downcast, fixed-point scaling or decimals mismatch. The literal is exactly 1e27 and fits int128, so the aderyn large-literal lead is style only.\n- Boundary: no external calls, no payable, receive or fallback, no bytes decoding. The only sentinel branches are the zero-address checks, which reject from and to zero in every path, including zero-value transferFrom from the zero address.\n- Numerical Gap: supply conservation held across a 1,024-run multi-actor fuzz plus self-transfer, max-uint and zero-value paths. The launch split in basis points is exact with no dust, and every share is a whole number of wei.\n\n**Supporting checks.** The existing 32 project tests pass under the pinned fuzz seed. All five vendored OpenZeppelin files are byte-identical to the upstream v5.0.2 tag, so the reviewed arithmetic is what deploys.\n\n**Coverage record.** All three ABI entry points are marked as holding, with five additional invariant rows covering the constant's value and width, launch-split exactness, decimals, the absence of a payable or external-call surface, and vendored-library integrity. The scratch test directory was removed since no finding needed it as proof, so the tree holds only the findings file.","treeHash":null,"usage":{"cachedInputTokens":542263,"inputTokens":226,"model":"claude-fable-5-1","outputTokens":11877,"runtime":"claude","turns":24,"wallClockMs":186764}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"78d8eb9b16352a18","findings":[],"hash":"59305c30063eaf2f920b271cc6218428f7c3789acc0e2fd52063ea642626f153","nodeId":"82765b8f-2e68-44d9-ae75-9405f3db707c","outcome":"completed","summary":"The review is complete and found no defects. The findings file holds an empty list and eight coverage rows, and no tracked file was changed.\n\n**What was reviewed.** The token is 17 lines over OpenZeppelin ERC20 v5.0.2 with a single constructor mint of 1e27 units to the deployer. I applied the three assigned Pashov guides (Economic Security, Invariant, Flow Gap) plus the Senior Auditor's Mindset, and used the entry-point inventory from the Trail of Bits reference.\n\n**Evidence gathered.**\n- The five vendored OpenZeppelin files are byte-identical to upstream v5.0.2. I compared sha256 hashes against the tagged GitHub sources.\n- The compiled ABI exposes only the three listed entry points plus views and the constructor. There is no mint, burn, owner, pause, blacklist or initializer.\n- The runtime bytecode contains no CALL, DELEGATECALL, CALLCODE, SELFDESTRUCT or CREATE opcodes, so there are no external dependencies or callbacks to break.\n- The repository suite passes with the assigned fuzz seed: 31 unit and fuzz tests plus one invariant suite, and formatting is clean.\n- A scratch test modelling the full launch sequence passed: factory deploy through CREATE2, the 10/88/2 split exhausting the factory balance exactly, approve-and-pull settlement as a pool manager does, many exact distributor claims, and the factory failing to pull a holder's balance without allowance.\n\n**Guide-by-guide result.** Economic Security: no oracle, token misbehaviour, fee, rebase or sentinel path exists, and transfers to or approvals of the zero address revert. Invariant: conservation of supply holds through OpenZeppelin's checked mint and bounded unchecked balance updates, and no path can grow supply after construction. Flow Gap: every flow in the protected launch suite is a plain transfer with no intermediate state the token could leave inconsistent, and decimals and supply match the stated manifest values.\n\n**Leads dismissed.** The aderyn large-numeric-literal note is a style remark on a compile-time constant equal to exactly 1e27. The ERC-20 approval ordering race and the absence of an Approval event on transferFrom are standard OpenZeppelin v5 behaviour, documented in the README, and fall under the guide's do-not-report list.\n\n**Not reached.** Nothing within the assigned area was left unreached. Live-chain Uniswap v4 seed and swap behaviour was not executed here because the protected harness depends on the verifier's factory and pool manager fixtures, which are not in this repository.","treeHash":null,"usage":{"cachedInputTokens":669536,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":10148,"runtime":"claude","turns":25,"wallClockMs":172939}},{"artifacts":[],"attempt":1,"bundleHash":"cccaa2c3757f171815412643f05ec49a830daff748d3ba1c1029034063896839","device":"265d2bb313654afc","findings":[],"hash":"78bbd1a906f3a725c2b27a78fe0e6e20cd665199f72705d881fcaf3d0daa5867","nodeId":"e0908fe2-dcad-4476-a488-b29b049ffdf5","outcome":"completed","summary":"Created `launch.json` matching the accepted `IMDTools` constructor, supply, metadata, pool settings, and exact economics. No other repository files changed.\n\n`forge build` succeeded. `forge test` passed all 32 tests with the supplied fuzz seed. Local manifest and constructor ABI checks passed.","treeHash":"653d66a19a60014f4da50af3fc3a099606440a4e","usage":{"cachedInputTokens":222976,"inputTokens":44024,"model":"gpt-6.1-sol","outputTokens":1962,"runtime":"codex","turns":3,"wallClockMs":73514}},{"artifacts":[],"attempt":1,"bundleHash":"f5436be03dbb480bd7a8dbc8498feff2657943bd9b0f0afcc488fb9529e418c2","device":"04cf70660d4946e6","findings":[],"hash":"ab9e2c6c6db7d70bf22d5ed1a45456c3177240f3cb959b6c2125c1576c969f7c","nodeId":"7caa3575-65a1-495c-90bc-7c7ee4b99570","outcome":"completed","summary":"Added 10 boundary and failure-path tests and expanded the invariant suite to 11 randomized actions.\n\nVerified `forge build` and `forge test` with the supplied seed: 42 tests passed, including 24,576 invariant calls.\n\nOnly `test/` files changed. No reproducible defects found.","treeHash":"ba31bccfab7c76a1088208913fc911b40e2a007d","usage":{"cachedInputTokens":589056,"inputTokens":71285,"model":"gpt-6.1-sol","outputTokens":8313,"runtime":"codex","turns":5,"wallClockMs":278698}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"3c1226d190150ef0","findings":[],"hash":"c7031ee3e75e91884c119e80cc5b54638432e524f07702eaeba13f753080a2e9","nodeId":"fd4908b3-3838-4516-baed-df29a6ea0d9d","outcome":"completed","summary":"I found no defects in IMD Tools (TOOLS). `.imd-findings.json` has an empty findings list and a coverage row for each of the three entry points, all marked \"holds\".\n\n**What I checked:**\n- **The token code:** `src/IMDTools.sol` is a plain ERC-20 built on OpenZeppelin v5.0.0. Its constructor takes no arguments and mints the full supply of 1,000,000,000 tokens (18 decimals) once to the deployer. It has no later mint or burn, no owner, no pause or blacklist, and no transfer fee.\n- **The library code:** I compared the vendored OpenZeppelin `approve`, `transfer`, `transferFrom`, the allowance check, the balance update and `_msgSender` against standard v5.0.0. None of it has been modified.\n- **Launch flows:** transfers move exactly the amount requested. So the factory's seed, the distributor's claims and pool swaps all arrive in full.\n- **Deployability:** the bytecode is about 2.7 KB to create and 1.8 KB deployed, far under the 49,152 and 24,576 byte limits. It needs no linked libraries and no particular address. `launch.json` has an empty argument list to match the constructor, and its supply, decimals and contract name match the code.\n- **The test suite:** all 42 existing tests pass (`forge test`).\n\n**Specialists and static analysis:**\n- None of the four specialists or the test writer reported anything, so there was nothing to reproduce or merge.\n- Slither reported nothing.\n- Aderyn's one \"large numeric literal\" warning is only about how the supply number is written, not a defect.\n\nThe allowance front-running race is a known property of every ERC-20 `approve`, so I didn't count it as a finding. I couldn't check `economics` against the original job description, which wasn't available to me. It matches the example values given in the task.","treeHash":null,"usage":{"cachedInputTokens":254174,"inputTokens":14,"model":"claude-opus-5-5","outputTokens":2736,"runtime":"claude","turns":7,"wallClockMs":48209}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"789312fc56d3f446","findings":[],"hash":"d75993419349f1fa43c1ed35200853ac13113479ff67c14d24a0d13045943710","nodeId":"532adcf0-fa0e-4431-837d-d34963b73eaf","outcome":"completed","summary":"Review complete. No defects found in the Access Control, Trust Gap or Asymmetry area, and the findings file at the repository root holds an empty findings list with a full coverage record. The working tree is otherwise unchanged.\n\n**What the token is.** One file, `src/IMDTools.sol`, inheriting the vendored OpenZeppelin v5.0.2 ERC20 with a constructor that mints 1e27 base units to msg.sender. The compiled ABI exposes exactly the ten ERC-20 selectors plus a constant getter. There is no owner, minter, pauser, initializer, proxy, receive or fallback.\n\n**What I verified**\n\n- **Access control:** no roles exist to escalate, no storage variable has two writers with different guards, and the constructor is nonpayable with no arguments. A 1024-run fuzz over unknown selectors reverted for both the deployer and a holder. The deployer and a stranger were shown symmetric: neither can move another holder's balance without an allowance.\n- **Asymmetry:** transfer and transferFrom share the same internal path, with transferFrom only adding the allowance spend. Zero-address, zero-amount, self-transfer and revert paths behave as mirrored pairs, and failed transferFrom calls leave the allowance intact.\n- **Trust gap:** with no privileged actor there is no access-times-economics or access-times-asymmetry seam. The only trust assumption is the intended one, that the factory receives the whole supply.\n- **Supply chain:** the five vendored OpenZeppelin files are byte-identical to upstream v5.0.2. The runtime bytecode contains no CALL, DELEGATECALL, CALLCODE, CREATE or SELFDESTRUCT opcodes, and storage slots beyond the ERC-20 set are zero.\n- **Checks run:** forge build, the seeded project suite (32 passing), forge fmt, a scratch probe suite (4 passing, since deleted), and an opcode scan. Slither and Mythril were not available.\n\n**Coverage record.** All three listed entry points are marked holds, with four additional invariant rows covering the fixed supply, the absence of privileged roles, the unmodified library, and exact launch flows.\n\n**Leads I set aside.** The aderyn large-numeric-literal line is the intended supply constant and not a defect. The standard ERC-20 allowance-replacement race is inherent to the specification and already documented in the README, so I did not report it. The README's chain ID and paired-currency address are outside my area and could not be checked because no network file was in the read set.","treeHash":null,"usage":{"cachedInputTokens":1077418,"inputTokens":514,"model":"claude-fable-5-1","outputTokens":10274,"runtime":"claude","turns":17,"wallClockMs":175567}}],"verification":[{"checks":[{"durationMs":1933,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.84s\nCompiler run successful!\n","passed":true},{"durationMs":3795,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 31 tests for test/IMDTools.t.sol:IMDToolsTest\n[PASS] testFuzz_ApproveAndTransferFrom(uint256,uint256) (runs: 1024, μ: 159742, ~: 162091)\nLogs:\n  Bound result 2778\n\n[PASS] testFuzz_InsufficientAllowanceIsAtomic(uint256,uint256) (runs: 1024, μ: 123587, ~: 124002)\nLogs:\n  Bound result 50000000000000000000\n  Bound result 999999951000000000000000000\n\n[PASS] testFuzz_OverdrawRevertsWithoutMovingTokens(uint256) (runs: 1024, μ: 69496, ~: 69836)\nLogs:\n  Bound result 212293007779371100862121747743234053556857223190313222321068677658613816402\n\n[PASS] testFuzz_TransferConservesSupply(address,uint256) (runs: 1024, μ: 93102, ~: 93401)\nLogs:\n  Bound result 6440\n\n[PASS] test_AllowanceBelongsToTheSpecificSpender() (gas: 116072)\n[PASS] test_ApprovalDoesNotRequireATokenBalance() (gas: 78684)\n[PASS] test_ApproveEmitsEventAndCanReplaceOrRevokeAllowance() (gas: 160567)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 62240)\n[PASS] test_ConstructorEmitsExactlyOneMint() (gas: 9784)\n[PASS] test_DeployerCannotMoveAnotherHoldersTokens() (gas: 158293)\n[PASS] test_EmptyAccountCannotTransferOrSelfTransferPositiveAmount() (gas: 85770)\n[PASS] test_EntireSupplyCanMoveAndReturn() (gas: 147259)\n[PASS] test_FactoryReceivesEntireSupplyWithCreateAndCreate2() (gas: 527559)\n[PASS] test_FailedTransferFromRestoresAllowance() (gas: 126480)\n[PASS] test_LaunchDistributionClaimsAndTradeTransfersAreExact() (gas: 764263)\n[PASS] test_MaximumAllowanceIsNotDecremented() (gas: 220364)\n[PASS] test_MetadataAndInitialSupply() (gas: 108561)\n[PASS] test_NoPostDeploymentMintBurnAdminOrUpgradeEntrypoints() (gas: 1639915)\n[PASS] test_RevokedAllowanceCannotBeSpent() (gas: 130267)\n[PASS] test_RuntimeHasNoDelegationOrDestructionOpcodes() (gas: 1125403)\n[PASS] test_SelfTransferPreservesBalance() (gas: 54060)\n[PASS] test_TransferEmitsEventAndMovesExactAmount() (gas: 93582)\n[PASS] test_TransferFromCannotExceedAllowance() (gas: 116071)\n[PASS] test_TransferFromEmitsEventAndSpendsFiniteAllowance() (gas: 267733)\n[PASS] test_TransferFromSelfStillSpendsAllowance() (gas: 105284)\n[PASS] test_TransferFromToZeroRevertsAndRestoresAllowance() (gas: 114248)\n[PASS] test_TransferMoreThanBalanceReverts() (gas: 55274)\n[PASS] test_TransferToZeroRevertsEvenForZeroAmount() (gas: 72305)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 73437)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 81536)\n[PASS] test_ZeroTransferFromZeroOwnerReverts() (gas: 55345)\nSuite result: ok. 31 passed; 0 failed; 0 skipped; finished in 35.52ms (152.71ms CPU time)\n\nRan 1 test for test/IMDTools.invariant.t.sol:IMDToolsInvariantTest\n[PASS]\nIMDToolsInvariantTest invariants:\n[PASS] invariant_AllowancesMatchModel\n[PASS] invariant_SupplyIsConservedAndBalancesMatchModel\n IMDToolsInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭--------------+-----------------+-------+---------+----------╮\n| Contract     | Selector        | Calls | Reverts | Discards |\n+=============================================================+\n| TokenHandler | approve         | 1657  | 0       | 0        |\n|--------------+-----------------+-------+---------+----------|\n| TokenHandler | rejectOverdraw  | 1658  | 0       | 0        |\n|--------------+-----------------+-------+---------+----------|\n| TokenHandler | rejectOverspend | 1655  | 0       | 0        |\n|--------------+-----------------+-------+---------+----------|\n| TokenHandler | transfer        | 1629  | 0       | 0        |\n|--------------+-----------------+-------+---------+----------|\n| TokenHandler | transferFrom    | 1593  | 0       | 0        |\n╰--------------+-----------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 14936097310475069\n  Bound result 276\n  Bound result 8896604041311316030823506112\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 4421\n  Bound result 0\n  Bound result 381349202466075130406778907081\n  Bound result 0\n  Bound result 0\n  Bound result 3701\n  Bound result 516719575917791729970165142\n  Bound result 0\n  Bound result 0\n  Bound result 5439\n  Bound result 1115\n  Bound result 0\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129635369\n  Bound result 15\n  Bound result 115792089237316195423570985008687907853269984665639564039458584007913129645359\n  Bound result 0\n  Bound result 1814\n  Bound result 0\n  Bound result 16\n  Bound result 133\n  Bound result 151\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129645650\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639897\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 3.68s (3.68s CPU time)\n\nRan 2 test suites in 3.69s (3.72s CPU time): 32 tests passed, 0 failed, 0 skipped (32 total tests)\n","passed":true},{"durationMs":46,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"IMDTools.approve(address,uint256)\",\"IMDTools.transfer(address,uint256)\",\"IMDTools.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":20,\"README.md\":147,\"foundry.toml\":20,\"remappings.txt\":2,\"src/IMDTools.sol\":17,\"test/IMDTools.invariant.t.sol\":124,\"test/IMDTools.t.sol\":430},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":612,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":388,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/IMDTools.sol:12: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"2cc555aaf9656c78b662ea8c11ac21c72b03124f4afb256c3df67febf6de08f9","verifiedTreeHash":"fa5134059b7db64a79df04d0028144e19a6350fa","verifierVersion":"0.1.0+67c588fa"},{"checks":[{"durationMs":1125,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.05s\nCompiler run successful!\n","passed":true},{"durationMs":2597,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 31 tests for test/IMDTools.t.sol:IMDToolsTest\n[PASS] testFuzz_ApproveAndTransferFrom(uint256,uint256) (runs: 1024, μ: 159742, ~: 162091)\nLogs:\n  Bound result 6\n\n[PASS] testFuzz_InsufficientAllowanceIsAtomic(uint256,uint256) (runs: 1024, μ: 123587, ~: 124002)\nLogs:\n  Bound result 5\n  Bound result 8800\n\n[PASS] testFuzz_OverdrawRevertsWithoutMovingTokens(uint256) (runs: 1024, μ: 69496, ~: 69836)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129640900\n\n[PASS] testFuzz_TransferConservesSupply(address,uint256) (runs: 1024, μ: 93102, ~: 93401)\nLogs:\n  Bound result 5208\n\n[PASS] test_AllowanceBelongsToTheSpecificSpender() (gas: 116072)\n[PASS] test_ApprovalDoesNotRequireATokenBalance() (gas: 78684)\n[PASS] test_ApproveEmitsEventAndCanReplaceOrRevokeAllowance() (gas: 160567)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 62240)\n[PASS] test_ConstructorEmitsExactlyOneMint() (gas: 9784)\n[PASS] test_DeployerCannotMoveAnotherHoldersTokens() (gas: 158293)\n[PASS] test_EmptyAccountCannotTransferOrSelfTransferPositiveAmount() (gas: 85770)\n[PASS] test_EntireSupplyCanMoveAndReturn() (gas: 147259)\n[PASS] test_FactoryReceivesEntireSupplyWithCreateAndCreate2() (gas: 527559)\n[PASS] test_FailedTransferFromRestoresAllowance() (gas: 126480)\n[PASS] test_LaunchDistributionClaimsAndTradeTransfersAreExact() (gas: 764263)\n[PASS] test_MaximumAllowanceIsNotDecremented() (gas: 220364)\n[PASS] test_MetadataAndInitialSupply() (gas: 108561)\n[PASS] test_NoPostDeploymentMintBurnAdminOrUpgradeEntrypoints() (gas: 1639915)\n[PASS] test_RevokedAllowanceCannotBeSpent() (gas: 130267)\n[PASS] test_RuntimeHasNoDelegationOrDestructionOpcodes() (gas: 1125403)\n[PASS] test_SelfTransferPreservesBalance() (gas: 54060)\n[PASS] test_TransferEmitsEventAndMovesExactAmount() (gas: 93582)\n[PASS] test_TransferFromCannotExceedAllowance() (gas: 116071)\n[PASS] test_TransferFromEmitsEventAndSpendsFiniteAllowance() (gas: 267733)\n[PASS] test_TransferFromSelfStillSpendsAllowance() (gas: 105284)\n[PASS] test_TransferFromToZeroRevertsAndRestoresAllowance() (gas: 114248)\n[PASS] test_TransferMoreThanBalanceReverts() (gas: 55274)\n[PASS] test_TransferToZeroRevertsEvenForZeroAmount() (gas: 72305)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 73437)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 81536)\n[PASS] test_ZeroTransferFromZeroOwnerReverts() (gas: 55345)\nSuite result: ok. 31 passed; 0 failed; 0 skipped; finished in 27.29ms (114.78ms CPU time)\n\nRan 1 test for test/IMDTools.invariant.t.sol:IMDToolsInvariantTest\n[PASS]\nIMDToolsInvariantTest invariants:\n[PASS] invariant_AllowancesMatchModel\n[PASS] invariant_SupplyIsConservedAndBalancesMatchModel\n IMDToolsInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭--------------+-----------------+-------+---------+----------╮\n| Contract     | Selector        | Calls | Reverts | Discards |\n+=============================================================+\n| TokenHandler | approve         | 1657  | 0       | 0        |\n|--------------+-----------------+-------+---------+----------|\n| TokenHandler | rejectOverdraw  | 1658  | 0       | 0        |\n|--------------+-----------------+-------+---------+----------|\n| TokenHandler | rejectOverspend | 1655  | 0       | 0        |\n|--------------+-----------------+-------+---------+----------|\n| TokenHandler | transfer        | 1629  | 0       | 0        |\n|--------------+-----------------+-------+---------+----------|\n| TokenHandler | transferFrom    | 1593  | 0       | 0        |\n╰--------------+-----------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 14936097310475069\n  Bound result 276\n  Bound result 8896604041311316030823506112\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 4421\n  Bound result 0\n  Bound result 381349202466075130406778907081\n  Bound result 0\n  Bound result 0\n  Bound result 3701\n  Bound result 516719575917791729970165142\n  Bound result 0\n  Bound result 0\n  Bound result 5439\n  Bound result 1115\n  Bound result 0\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129635369\n  Bound result 15\n  Bound result 1000000000000000000\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007915965362682\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129634512\n  Bound result 131\n  Bound result 100\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129645412\n  Bound result 95\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.51s (2.51s CPU time)\n\nRan 2 test suites in 2.52s (2.54s CPU time): 32 tests passed, 0 failed, 0 skipped (32 total tests)\n","passed":true},{"durationMs":39,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"IMDTools.approve(address,uint256)\",\"IMDTools.transfer(address,uint256)\",\"IMDTools.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":20,\"README.md\":147,\"foundry.toml\":20,\"launch.json\":20,\"remappings.txt\":2,\"src/IMDTools.sol\":17,\"test/IMDTools.invariant.t.sol\":124,\"test/IMDTools.t.sol\":430},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"78bbd1a906f3a725c2b27a78fe0e6e20cd665199f72705d881fcaf3d0daa5867","verifiedTreeHash":"653d66a19a60014f4da50af3fc3a099606440a4e","verifierVersion":"0.1.0+67c588fa"},{"checks":[{"durationMs":2473,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 2.36s\nCompiler run successful!\n","passed":true},{"durationMs":11260,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 31 tests for test/IMDTools.t.sol:IMDToolsTest\n[PASS] testFuzz_ApproveAndTransferFrom(uint256,uint256) (runs: 1024, μ: 159878, ~: 162091)\nLogs:\n  Bound result 422\n\n[PASS] testFuzz_InsufficientAllowanceIsAtomic(uint256,uint256) (runs: 1024, μ: 123596, ~: 124012)\nLogs:\n  Bound result 23174\n  Bound result 999999999999999999999978647\n\n[PASS] testFuzz_OverdrawRevertsWithoutMovingTokens(uint256) (runs: 1024, μ: 69498, ~: 69836)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129640898\n\n[PASS] testFuzz_TransferConservesSupply(address,uint256) (runs: 1024, μ: 90576, ~: 91218)\nLogs:\n  Bound result 278948712405340605562503626\n\n[PASS] test_AllowanceBelongsToTheSpecificSpender() (gas: 116072)\n[PASS] test_ApprovalDoesNotRequireATokenBalance() (gas: 78684)\n[PASS] test_ApproveEmitsEventAndCanReplaceOrRevokeAllowance() (gas: 160567)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 62240)\n[PASS] test_ConstructorEmitsExactlyOneMint() (gas: 9784)\n[PASS] test_DeployerCannotMoveAnotherHoldersTokens() (gas: 158293)\n[PASS] test_EmptyAccountCannotTransferOrSelfTransferPositiveAmount() (gas: 85770)\n[PASS] test_EntireSupplyCanMoveAndReturn() (gas: 147259)\n[PASS] test_FactoryReceivesEntireSupplyWithCreateAndCreate2() (gas: 527559)\n[PASS] test_FailedTransferFromRestoresAllowance() (gas: 126480)\n[PASS] test_LaunchDistributionClaimsAndTradeTransfersAreExact() (gas: 764263)\n[PASS] test_MaximumAllowanceIsNotDecremented() (gas: 220364)\n[PASS] test_MetadataAndInitialSupply() (gas: 108561)\n[PASS] test_NoPostDeploymentMintBurnAdminOrUpgradeEntrypoints() (gas: 1639915)\n[PASS] test_RevokedAllowanceCannotBeSpent() (gas: 130267)\n[PASS] test_RuntimeHasNoDelegationOrDestructionOpcodes() (gas: 1125403)\n[PASS] test_SelfTransferPreservesBalance() (gas: 54060)\n[PASS] test_TransferEmitsEventAndMovesExactAmount() (gas: 93582)\n[PASS] test_TransferFromCannotExceedAllowance() (gas: 116071)\n[PASS] test_TransferFromEmitsEventAndSpendsFiniteAllowance() (gas: 267733)\n[PASS] test_TransferFromSelfStillSpendsAllowance() (gas: 105284)\n[PASS] test_TransferFromToZeroRevertsAndRestoresAllowance() (gas: 114248)\n[PASS] test_TransferMoreThanBalanceReverts() (gas: 55274)\n[PASS] test_TransferToZeroRevertsEvenForZeroAmount() (gas: 72305)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 73437)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 81536)\n[PASS] test_ZeroTransferFromZeroOwnerReverts() (gas: 55345)\nSuite result: ok. 31 passed; 0 failed; 0 skipped; finished in 144.61ms (543.55ms CPU time)\n\nRan 10 tests for test/IMDTools.edges.t.sol:IMDToolsEdgeTest\n[PASS] testFuzz_FailedDelegatedOverdrawCanRetryAfterFunding(uint256,uint256,uint256,bool) (runs: 1024, μ: 359810, ~: 360237)\nLogs:\n  Bound result 8831\n  Bound result 999999999999999999999999917\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129653313\n\n[PASS] testFuzz_InvalidReceiverPreservesAllowanceForRetry(uint256,uint256) (runs: 1024, μ: 239611, ~: 240641)\nLogs:\n  Bound result 361\n  Bound result 1642\n\n[PASS] testFuzz_RepeatedRoundTripsPreserveAllBalances(uint256,uint8) (runs: 1024, μ: 564884, ~: 458772)\nLogs:\n  Bound result 474516489306221277035621185\n  Bound result 4\n\n[PASS] testFuzz_ReplaceInfiniteApprovalThenRevoke(uint256,uint256) (runs: 1024, μ: 338695, ~: 339463)\nLogs:\n  Bound result 88\n  Bound result 25\n\n[PASS] testFuzz_SplitDelegatedTransfersEqualOneTransfer(uint256,uint256,uint256) (runs: 1024, μ: 381530, ~: 382600)\nLogs:\n  Bound result 10000\n  Bound result 8\n  Bound result 16922\n\n[PASS] test_HolderNeedsAllowanceToUseTransferFromOnOwnBalance() (gas: 192265)\n[PASS] test_MaximumFiniteAllowanceIsSpentRatherThanTreatedAsInfinite() (gas: 153154)\n[PASS] test_MaximumTransferCannotWrapBalanceOrSupply() (gas: 157122)\n[PASS] test_OneSmallestUnitCanTransferAndReturnThroughAllowance() (gas: 213002)\n[PASS] test_ZeroDelegatedSelfTransferPreservesExistingAllowance() (gas: 115081)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 146.22ms (703.56ms CPU time)\n\nRan 1 test for test/IMDTools.invariant.t.sol:IMDToolsInvariantTest\n[PASS]\nIMDToolsInvariantTest invariants:\n[PASS] invariant_AllowancesMatchModel\n[PASS] invariant_MetadataRemainsFixed\n[PASS] invariant_SupplyIsConservedAndBalancesMatchModel\n IMDToolsInvariantTest invariants (runs: 256, calls: 24576, reverts: 0)\n\n╭--------------+-------------------------+-------+---------+----------╮\n| Contract     | Selector                | Calls | Reverts | Discards |\n+=====================================================================+\n| TokenHandler | approve                 | 2132  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | approveBoundary         | 2306  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | rejectDelegatedOverdraw | 2183  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | rejectOverdraw          | 2297  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | rejectOverspend         | 2186  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | rejectZeroReceiver      | 2293  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | rejectZeroSpender       | 2265  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | revokeAndReject         | 2220  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | transfer                | 2257  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | transferEntireBalance   | 2246  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | transferFrom            | 2191  | 0       | 0        |\n╰--------------+-------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 242\n  Bound result 1\n  Bound result 1000000000000000000000000000\n  Bound result 0\n  Bound result 0\n  Bound result 11\n  Bound result 8\n  Bound result 0\n  Bound result 0\n  Bound result 6637\n  Bound result 0\n  Bound result 1000000000000000000000000000\n  Bound result 1000\n  Bound result 0\n  Bound result 95\n  Bound result 1000000000000000000000000000\n  Bound result 278395406381629959714960697\n  Bound result 428099952836386589443751321\n  Bound result 0\n  Bound result 1000000000000000000000000000\n  Bound result 1000000000000000000000000000\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 3\n  Bound result 0\n  Bound result 2935\n  Bound result 0\n  Bound result 0\n  Bound result 5653\n  Bound result 10567\n  Bound result 242\n  Bound result 0\n  Bound result 0\n  Bound result 10567\n  Bound result 0\n  Bound result 999999999999999999999989433\n  Bound result 0\n  Bound result 0\n  Bound result 805\n  Bound result 8\n  Bound result 999999999999999999999989441\n  Bound result 11829783653852175523343772914246376920962907266579994233114552445897011384241\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129630281\n  Bound result 21\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129650979\n  Bound result 0\n  Bound result 999999999999999999999989419\n  Bound result 9775\n  Bound result 9775\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129630759\n  Bound result 240\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 11.13s (11.13s CPU time)\n\nRan 3 test suites in 11.13s (11.42s CPU time): 42 tests passed, 0 failed, 0 skipped (42 total tests)\n","passed":true},{"durationMs":68,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"IMDTools.approve(address,uint256)\",\"IMDTools.transfer(address,uint256)\",\"IMDTools.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":20,\"README.md\":147,\"foundry.toml\":20,\"remappings.txt\":2,\"src/IMDTools.sol\":17,\"test/IMDTools.edges.t.sol\":217,\"test/IMDTools.invariant.t.sol\":210,\"test/IMDTools.t.sol\":430},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"ab9e2c6c6db7d70bf22d5ed1a45456c3177240f3cb959b6c2125c1576c969f7c","verifiedTreeHash":"ba31bccfab7c76a1088208913fc911b40e2a007d","verifierVersion":"0.1.0+67c588fa"}]}