diff --git a/.vite/deps/_metadata.json b/.vite/deps/_metadata.json new file mode 100644 index 0000000..c8c3160 --- /dev/null +++ b/.vite/deps/_metadata.json @@ -0,0 +1,8 @@ +{ + "hash": "56a98f65", + "configHash": "5dd441ec", + "lockfileHash": "e3b0c442", + "browserHash": "34466ec6", + "optimized": {}, + "chunks": {} +} \ No newline at end of file diff --git a/.vite/deps/package.json b/.vite/deps/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/.vite/deps/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/cache/solidity-files-cache.json b/cache/solidity-files-cache.json index 81df2ff..c663aad 100644 --- a/cache/solidity-files-cache.json +++ b/cache/solidity-files-cache.json @@ -1 +1 @@ -{"_format":"","paths":{"artifacts":"out","build_infos":"out/build-info","sources":"src","tests":"test","scripts":"script","libraries":["lib"]},"files":{"lib/forge-std/src/Base.sol":{"lastModificationDate":1731914666838,"contentHash":"ee13c050b1914464f1d3f90cde90204b","sourceName":"lib/forge-std/src/Base.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/StdStorage.sol","lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"CommonBase":{"0.8.26":{"path":"Base.sol\\CommonBase.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"ScriptBase":{"0.8.26":{"path":"Base.sol\\ScriptBase.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"TestBase":{"0.8.26":{"path":"Base.sol\\TestBase.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/Script.sol":{"lastModificationDate":1731914666838,"contentHash":"ba325c778a7da8a21c2136aa32763c14","sourceName":"lib/forge-std/src/Script.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Script":{"0.8.26":{"path":"Script.sol\\Script.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdAssertions.sol":{"lastModificationDate":1731914666839,"contentHash":"25b77f9806b64d497b8a46aeb8e5f6f0","sourceName":"lib/forge-std/src/StdAssertions.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdAssertions":{"0.8.26":{"path":"StdAssertions.sol\\StdAssertions.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdChains.sol":{"lastModificationDate":1731914667011,"contentHash":"b039727c96bb3d5b9a59448fd16b1e0f","sourceName":"lib/forge-std/src/StdChains.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdChains":{"0.8.26":{"path":"StdChains.sol\\StdChains.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdCheats.sol":{"lastModificationDate":1731914667012,"contentHash":"96c712134b63f85d00461749d0c1611c","sourceName":"lib/forge-std/src/StdCheats.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/StdStorage.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdCheats":{"0.8.26":{"path":"StdCheats.sol\\StdCheats.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"StdCheatsSafe":{"0.8.26":{"path":"StdCheats.sol\\StdCheatsSafe.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdError.sol":{"lastModificationDate":1731914666841,"contentHash":"64c896e1276a291776e5ea5aecb3870a","sourceName":"lib/forge-std/src/StdError.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdError":{"0.8.26":{"path":"StdError.sol\\stdError.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdInvariant.sol":{"lastModificationDate":1731914666842,"contentHash":"f16837d0e7cb829544ae1f1319ea7643","sourceName":"lib/forge-std/src/StdInvariant.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdInvariant":{"0.8.26":{"path":"StdInvariant.sol\\StdInvariant.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdJson.sol":{"lastModificationDate":1731914667012,"contentHash":"02209da5708eaee03e24a9c24a687370","sourceName":"lib/forge-std/src/StdJson.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.0, <0.9.0","artifacts":{"stdJson":{"0.8.26":{"path":"StdJson.sol\\stdJson.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdMath.sol":{"lastModificationDate":1731914666842,"contentHash":"9da8f453eba6bb98f3d75bc6822bfb29","sourceName":"lib/forge-std/src/StdMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdMath":{"0.8.26":{"path":"StdMath.sol\\stdMath.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdStorage.sol":{"lastModificationDate":1731914666842,"contentHash":"ce68f6e336944f16d31351a47d0b19b8","sourceName":"lib/forge-std/src/StdStorage.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdStorage":{"0.8.26":{"path":"StdStorage.sol\\stdStorage.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"stdStorageSafe":{"0.8.26":{"path":"StdStorage.sol\\stdStorageSafe.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdStyle.sol":{"lastModificationDate":1731914666843,"contentHash":"6281165a12aa639705c691fccefd855e","sourceName":"lib/forge-std/src/StdStyle.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{"StdStyle":{"0.8.26":{"path":"StdStyle.sol\\StdStyle.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdToml.sol":{"lastModificationDate":1731914667013,"contentHash":"4bce85a4c60f2c073e651ee8140bcb4d","sourceName":"lib/forge-std/src/StdToml.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.0, <0.9.0","artifacts":{"stdToml":{"0.8.26":{"path":"StdToml.sol\\stdToml.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdUtils.sol":{"lastModificationDate":1731914666843,"contentHash":"b50717f17f251a2a96a5884c90add7bf","sourceName":"lib/forge-std/src/StdUtils.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdUtils":{"0.8.26":{"path":"StdUtils.sol\\StdUtils.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/Test.sol":{"lastModificationDate":1731914666844,"contentHash":"b6f15605355fc8c421fe42a90f94bf32","sourceName":"lib/forge-std/src/Test.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdAssertions.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdError.sol","lib/forge-std/src/StdInvariant.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdToml.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Test":{"0.8.26":{"path":"Test.sol\\Test.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/Vm.sol":{"lastModificationDate":1731914667015,"contentHash":"707e31ca7be04756b2a1b853d9c110ac","sourceName":"lib/forge-std/src/Vm.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Vm":{"0.8.26":{"path":"Vm.sol\\Vm.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"VmSafe":{"0.8.26":{"path":"Vm.sol\\VmSafe.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/console.sol":{"lastModificationDate":1731914667016,"contentHash":"ce19a9e49945b42118379ff99d853c05","sourceName":"lib/forge-std/src/console.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{"console":{"0.8.26":{"path":"console.sol\\console.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/console2.sol":{"lastModificationDate":1731914666845,"contentHash":"f65ad21034b111e70fb5342d5771efcd","sourceName":"lib/forge-std/src/console2.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/console.sol"],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{},"seenByCompiler":true},"lib/forge-std/src/interfaces/IERC165.sol":{"lastModificationDate":1731914666847,"contentHash":"90fe5e2e3ed432d6f3b408e7c9e8a739","sourceName":"lib/forge-std/src/interfaces/IERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2","artifacts":{"IERC165":{"0.8.26":{"path":"IERC165.sol\\IERC165.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/interfaces/IERC20.sol":{"lastModificationDate":1731914666847,"contentHash":"8099161d518e5862a76750349d58e801","sourceName":"lib/forge-std/src/interfaces/IERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2","artifacts":{"IERC20":{"0.8.26":{"path":"IERC20.sol\\IERC20.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/interfaces/IERC721.sol":{"lastModificationDate":1731914666847,"contentHash":"efc26e7f9a2f76b68088c8760ceae2dc","sourceName":"lib/forge-std/src/interfaces/IERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/interfaces/IERC165.sol"],"versionRequirement":">=0.6.2","artifacts":{"IERC721":{"0.8.26":{"path":"IERC721.sol\\IERC721.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"IERC721Enumerable":{"0.8.26":{"path":"IERC721.sol\\IERC721Enumerable.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"IERC721Metadata":{"0.8.26":{"path":"IERC721.sol\\IERC721Metadata.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"IERC721TokenReceiver":{"0.8.26":{"path":"IERC721.sol\\IERC721TokenReceiver.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/interfaces/IMulticall3.sol":{"lastModificationDate":1731914666848,"contentHash":"7b131ca1ca32ef6378b7b9ad5488b901","sourceName":"lib/forge-std/src/interfaces/IMulticall3.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"IMulticall3":{"0.8.26":{"path":"IMulticall3.sol\\IMulticall3.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/mocks/MockERC20.sol":{"lastModificationDate":1731914666848,"contentHash":"8e14d63e81e1d54dbc2d44df38ae9dec","sourceName":"lib/forge-std/src/mocks/MockERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/interfaces/IERC20.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"MockERC20":{"0.8.26":{"path":"MockERC20.sol\\MockERC20.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/mocks/MockERC721.sol":{"lastModificationDate":1731914666849,"contentHash":"e91cd9dba7f88f03710c56a347d89d1e","sourceName":"lib/forge-std/src/mocks/MockERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC721.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"MockERC721":{"0.8.26":{"path":"MockERC721.sol\\MockERC721.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/safeconsole.sol":{"lastModificationDate":1731914666851,"contentHash":"1445aa2f47000e212173e0cefd6c7a77","sourceName":"lib/forge-std/src/safeconsole.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"safeconsole":{"0.8.26":{"path":"safeconsole.sol\\safeconsole.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"lastModificationDate":1731914861077,"contentHash":"267d92fe4de67b1bdb3302c08f387dbf","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC1155Errors":{"0.8.26":{"path":"draft-IERC6093.sol\\IERC1155Errors.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}},"IERC20Errors":{"0.8.26":{"path":"draft-IERC6093.sol\\IERC20Errors.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}},"IERC721Errors":{"0.8.26":{"path":"draft-IERC6093.sol\\IERC721Errors.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"lastModificationDate":1731914861143,"contentHash":"a7951c81f7037d558c6d2f220b0cb38e","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC721":{"0.8.26":{"path":"ERC721.sol\\ERC721.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"lastModificationDate":1731914861143,"contentHash":"1fdc621cd6747e8985e11fc76ce74511","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC721":{"0.8.26":{"path":"ERC721\\IERC721.sol\\IERC721.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"lastModificationDate":1731914861144,"contentHash":"729ce0904eb533489ffcc3bfe91237d4","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC721Receiver":{"0.8.26":{"path":"IERC721Receiver.sol\\IERC721Receiver.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"lastModificationDate":1731914860557,"contentHash":"12c206f185cb951213799561fdcaa40d","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC721Metadata":{"0.8.26":{"path":"IERC721Metadata.sol\\IERC721Metadata.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"lastModificationDate":1731914861152,"contentHash":"f4b67273e290784d0e155f004ae52f0b","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC721Utils":{"0.8.26":{"path":"ERC721Utils.sol\\ERC721Utils.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"lastModificationDate":1731914861158,"contentHash":"67bfbc07588eb8683b3fd8f6f909563e","sourceName":"lib/openzeppelin-contracts/contracts/utils/Context.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Context":{"0.8.26":{"path":"Context.sol\\Context.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"lastModificationDate":1731914861161,"contentHash":"2133dc13536b4a6a98131e431fac59e1","sourceName":"lib/openzeppelin-contracts/contracts/utils/Panic.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Panic":{"0.8.26":{"path":"Panic.sol\\Panic.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"lastModificationDate":1731914861164,"contentHash":"f4cc092958a3ddec1f4ed4103bfc54dd","sourceName":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"],"versionRequirement":"^0.8.20","artifacts":{"Strings":{"0.8.26":{"path":"Strings.sol\\Strings.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"lastModificationDate":1731914861172,"contentHash":"7c03c1e37c3dc24eafb76dc2b8a5c3a6","sourceName":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC165":{"0.8.26":{"path":"ERC165.sol\\ERC165.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"lastModificationDate":1731914861172,"contentHash":"bf0119eb2a570f219729ff38b6cd1df8","sourceName":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC165":{"0.8.26":{"path":"introspection\\IERC165.sol\\IERC165.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"lastModificationDate":1731914861174,"contentHash":"2b2665ae9bdb1af440658741a77fe213","sourceName":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol"],"versionRequirement":"^0.8.20","artifacts":{"Math":{"0.8.26":{"path":"Math.sol\\Math.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"lastModificationDate":1731914861174,"contentHash":"2adca1150f58fc6f3d1f0a0f22ee7cca","sourceName":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"SafeCast":{"0.8.26":{"path":"SafeCast.sol\\SafeCast.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"lastModificationDate":1731914861174,"contentHash":"ae3528afb8bdb0a7dcfba5b115ee8074","sourceName":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol"],"versionRequirement":"^0.8.20","artifacts":{"SignedMath":{"0.8.26":{"path":"SignedMath.sol\\SignedMath.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"script/Counter.s.sol":{"lastModificationDate":1731914665940,"contentHash":"a3f39f45f6d251978d0155b376261aca","sourceName":"script/Counter.s.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src\\Script.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol","src\\Counter.sol"],"versionRequirement":"^0.8.13","artifacts":{"CounterScript":{"0.8.26":{"path":"Counter.s.sol\\CounterScript.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"src/Counter.sol":{"lastModificationDate":1731914665940,"contentHash":"ae6c800a2b4c57768024d6e9423d39e8","sourceName":"src/Counter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.13","artifacts":{"Counter":{"0.8.26":{"path":"Counter.sol\\Counter.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"src/hopital/G16Verify.sol":{"lastModificationDate":1731923870168,"contentHash":"e970d3282725dabc54cfa1c489e339c7","sourceName":"src/hopital/G16Verify.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.7.0, <0.9.0","artifacts":{"Groth16Verifier":{"0.8.26":{"path":"G16Verify.sol\\Groth16Verifier.json","build_id":"16c8ebe7b2340df066b163e66207f551"}}},"seenByCompiler":true},"src/hopital/History.sol":{"lastModificationDate":1731916932475,"contentHash":"ce6f2471401201ab8bb65cd4f6f0592a","sourceName":"src/hopital/History.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.13","artifacts":{"History":{"0.8.26":{"path":"History.sol\\History.json","build_id":"84d83be00ee32e1d4e26712358afea73"}}},"seenByCompiler":true},"src/hopital/Verifyer.sol":{"lastModificationDate":1731923889150,"contentHash":"d82ed8a4bf16f5a15df781a5436c0533","sourceName":"src/hopital/Verifyer.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":null,"artifacts":{},"seenByCompiler":true}},"builds":["16c8ebe7b2340df066b163e66207f551","6795af3fb4cc777eb080e3d361568bdf","6df80628dcc66930123d3d52de6e7790","84d83be00ee32e1d4e26712358afea73"]} \ No newline at end of file +{"_format":"","paths":{"artifacts":"out","build_infos":"out/build-info","sources":"src","tests":"test","scripts":"script","libraries":["lib"]},"files":{"lib/forge-std/src/Base.sol":{"lastModificationDate":1731914666838,"contentHash":"ee13c050b1914464f1d3f90cde90204b","sourceName":"lib/forge-std/src/Base.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/StdStorage.sol","lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"CommonBase":{"0.8.26":{"path":"Base.sol\\CommonBase.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"ScriptBase":{"0.8.26":{"path":"Base.sol\\ScriptBase.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"TestBase":{"0.8.26":{"path":"Base.sol\\TestBase.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/Script.sol":{"lastModificationDate":1731914666838,"contentHash":"ba325c778a7da8a21c2136aa32763c14","sourceName":"lib/forge-std/src/Script.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Script":{"0.8.26":{"path":"Script.sol\\Script.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdAssertions.sol":{"lastModificationDate":1731914666839,"contentHash":"25b77f9806b64d497b8a46aeb8e5f6f0","sourceName":"lib/forge-std/src/StdAssertions.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdAssertions":{"0.8.26":{"path":"StdAssertions.sol\\StdAssertions.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdChains.sol":{"lastModificationDate":1731914667011,"contentHash":"b039727c96bb3d5b9a59448fd16b1e0f","sourceName":"lib/forge-std/src/StdChains.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdChains":{"0.8.26":{"path":"StdChains.sol\\StdChains.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdCheats.sol":{"lastModificationDate":1731914667012,"contentHash":"96c712134b63f85d00461749d0c1611c","sourceName":"lib/forge-std/src/StdCheats.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/StdStorage.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdCheats":{"0.8.26":{"path":"StdCheats.sol\\StdCheats.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"StdCheatsSafe":{"0.8.26":{"path":"StdCheats.sol\\StdCheatsSafe.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdError.sol":{"lastModificationDate":1731914666841,"contentHash":"64c896e1276a291776e5ea5aecb3870a","sourceName":"lib/forge-std/src/StdError.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdError":{"0.8.26":{"path":"StdError.sol\\stdError.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdInvariant.sol":{"lastModificationDate":1731914666842,"contentHash":"f16837d0e7cb829544ae1f1319ea7643","sourceName":"lib/forge-std/src/StdInvariant.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdInvariant":{"0.8.26":{"path":"StdInvariant.sol\\StdInvariant.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdJson.sol":{"lastModificationDate":1731914667012,"contentHash":"02209da5708eaee03e24a9c24a687370","sourceName":"lib/forge-std/src/StdJson.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.0, <0.9.0","artifacts":{"stdJson":{"0.8.26":{"path":"StdJson.sol\\stdJson.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdMath.sol":{"lastModificationDate":1731914666842,"contentHash":"9da8f453eba6bb98f3d75bc6822bfb29","sourceName":"lib/forge-std/src/StdMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdMath":{"0.8.26":{"path":"StdMath.sol\\stdMath.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdStorage.sol":{"lastModificationDate":1731914666842,"contentHash":"ce68f6e336944f16d31351a47d0b19b8","sourceName":"lib/forge-std/src/StdStorage.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdStorage":{"0.8.26":{"path":"StdStorage.sol\\stdStorage.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"stdStorageSafe":{"0.8.26":{"path":"StdStorage.sol\\stdStorageSafe.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdStyle.sol":{"lastModificationDate":1731914666843,"contentHash":"6281165a12aa639705c691fccefd855e","sourceName":"lib/forge-std/src/StdStyle.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{"StdStyle":{"0.8.26":{"path":"StdStyle.sol\\StdStyle.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdToml.sol":{"lastModificationDate":1731914667013,"contentHash":"4bce85a4c60f2c073e651ee8140bcb4d","sourceName":"lib/forge-std/src/StdToml.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.0, <0.9.0","artifacts":{"stdToml":{"0.8.26":{"path":"StdToml.sol\\stdToml.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/StdUtils.sol":{"lastModificationDate":1731914666843,"contentHash":"b50717f17f251a2a96a5884c90add7bf","sourceName":"lib/forge-std/src/StdUtils.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdUtils":{"0.8.26":{"path":"StdUtils.sol\\StdUtils.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/Test.sol":{"lastModificationDate":1731914666844,"contentHash":"b6f15605355fc8c421fe42a90f94bf32","sourceName":"lib/forge-std/src/Test.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdAssertions.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdError.sol","lib/forge-std/src/StdInvariant.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdToml.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Test":{"0.8.26":{"path":"Test.sol\\Test.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/Vm.sol":{"lastModificationDate":1731914667015,"contentHash":"707e31ca7be04756b2a1b853d9c110ac","sourceName":"lib/forge-std/src/Vm.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Vm":{"0.8.26":{"path":"Vm.sol\\Vm.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"VmSafe":{"0.8.26":{"path":"Vm.sol\\VmSafe.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/console.sol":{"lastModificationDate":1731914667016,"contentHash":"ce19a9e49945b42118379ff99d853c05","sourceName":"lib/forge-std/src/console.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{"console":{"0.8.26":{"path":"console.sol\\console.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/console2.sol":{"lastModificationDate":1731914666845,"contentHash":"f65ad21034b111e70fb5342d5771efcd","sourceName":"lib/forge-std/src/console2.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/console.sol"],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{},"seenByCompiler":true},"lib/forge-std/src/interfaces/IERC165.sol":{"lastModificationDate":1731914666847,"contentHash":"90fe5e2e3ed432d6f3b408e7c9e8a739","sourceName":"lib/forge-std/src/interfaces/IERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2","artifacts":{"IERC165":{"0.8.26":{"path":"IERC165.sol\\IERC165.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/interfaces/IERC20.sol":{"lastModificationDate":1731914666847,"contentHash":"8099161d518e5862a76750349d58e801","sourceName":"lib/forge-std/src/interfaces/IERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2","artifacts":{"IERC20":{"0.8.26":{"path":"IERC20.sol\\IERC20.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/interfaces/IERC721.sol":{"lastModificationDate":1731914666847,"contentHash":"efc26e7f9a2f76b68088c8760ceae2dc","sourceName":"lib/forge-std/src/interfaces/IERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/interfaces/IERC165.sol"],"versionRequirement":">=0.6.2","artifacts":{"IERC721":{"0.8.26":{"path":"IERC721.sol\\IERC721.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"IERC721Enumerable":{"0.8.26":{"path":"IERC721.sol\\IERC721Enumerable.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"IERC721Metadata":{"0.8.26":{"path":"IERC721.sol\\IERC721Metadata.json","build_id":"6df80628dcc66930123d3d52de6e7790"}},"IERC721TokenReceiver":{"0.8.26":{"path":"IERC721.sol\\IERC721TokenReceiver.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/interfaces/IMulticall3.sol":{"lastModificationDate":1731914666848,"contentHash":"7b131ca1ca32ef6378b7b9ad5488b901","sourceName":"lib/forge-std/src/interfaces/IMulticall3.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"IMulticall3":{"0.8.26":{"path":"IMulticall3.sol\\IMulticall3.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/mocks/MockERC20.sol":{"lastModificationDate":1731914666848,"contentHash":"8e14d63e81e1d54dbc2d44df38ae9dec","sourceName":"lib/forge-std/src/mocks/MockERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/interfaces/IERC20.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"MockERC20":{"0.8.26":{"path":"MockERC20.sol\\MockERC20.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/mocks/MockERC721.sol":{"lastModificationDate":1731914666849,"contentHash":"e91cd9dba7f88f03710c56a347d89d1e","sourceName":"lib/forge-std/src/mocks/MockERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC721.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"MockERC721":{"0.8.26":{"path":"MockERC721.sol\\MockERC721.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/forge-std/src/safeconsole.sol":{"lastModificationDate":1731914666851,"contentHash":"1445aa2f47000e212173e0cefd6c7a77","sourceName":"lib/forge-std/src/safeconsole.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"safeconsole":{"0.8.26":{"path":"safeconsole.sol\\safeconsole.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"lastModificationDate":1731914861077,"contentHash":"267d92fe4de67b1bdb3302c08f387dbf","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC1155Errors":{"0.8.26":{"path":"draft-IERC6093.sol\\IERC1155Errors.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}},"IERC20Errors":{"0.8.26":{"path":"draft-IERC6093.sol\\IERC20Errors.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}},"IERC721Errors":{"0.8.26":{"path":"draft-IERC6093.sol\\IERC721Errors.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"lastModificationDate":1731914861143,"contentHash":"a7951c81f7037d558c6d2f220b0cb38e","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC721":{"0.8.26":{"path":"ERC721.sol\\ERC721.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"lastModificationDate":1731914861143,"contentHash":"1fdc621cd6747e8985e11fc76ce74511","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC721":{"0.8.26":{"path":"ERC721\\IERC721.sol\\IERC721.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"lastModificationDate":1731914861144,"contentHash":"729ce0904eb533489ffcc3bfe91237d4","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC721Receiver":{"0.8.26":{"path":"IERC721Receiver.sol\\IERC721Receiver.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"lastModificationDate":1731914860557,"contentHash":"12c206f185cb951213799561fdcaa40d","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC721Metadata":{"0.8.26":{"path":"IERC721Metadata.sol\\IERC721Metadata.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"lastModificationDate":1731914861152,"contentHash":"f4b67273e290784d0e155f004ae52f0b","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC721Utils":{"0.8.26":{"path":"ERC721Utils.sol\\ERC721Utils.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"lastModificationDate":1731914861158,"contentHash":"67bfbc07588eb8683b3fd8f6f909563e","sourceName":"lib/openzeppelin-contracts/contracts/utils/Context.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Context":{"0.8.26":{"path":"Context.sol\\Context.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"lastModificationDate":1731914861161,"contentHash":"2133dc13536b4a6a98131e431fac59e1","sourceName":"lib/openzeppelin-contracts/contracts/utils/Panic.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Panic":{"0.8.26":{"path":"Panic.sol\\Panic.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"lastModificationDate":1731914861164,"contentHash":"f4cc092958a3ddec1f4ed4103bfc54dd","sourceName":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"],"versionRequirement":"^0.8.20","artifacts":{"Strings":{"0.8.26":{"path":"Strings.sol\\Strings.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"lastModificationDate":1731914861172,"contentHash":"7c03c1e37c3dc24eafb76dc2b8a5c3a6","sourceName":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC165":{"0.8.26":{"path":"ERC165.sol\\ERC165.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"lastModificationDate":1731914861172,"contentHash":"bf0119eb2a570f219729ff38b6cd1df8","sourceName":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC165":{"0.8.26":{"path":"introspection\\IERC165.sol\\IERC165.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"lastModificationDate":1731914861174,"contentHash":"2b2665ae9bdb1af440658741a77fe213","sourceName":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol"],"versionRequirement":"^0.8.20","artifacts":{"Math":{"0.8.26":{"path":"Math.sol\\Math.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"lastModificationDate":1731914861174,"contentHash":"2adca1150f58fc6f3d1f0a0f22ee7cca","sourceName":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"SafeCast":{"0.8.26":{"path":"SafeCast.sol\\SafeCast.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"lastModificationDate":1731914861174,"contentHash":"ae3528afb8bdb0a7dcfba5b115ee8074","sourceName":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol"],"versionRequirement":"^0.8.20","artifacts":{"SignedMath":{"0.8.26":{"path":"SignedMath.sol\\SignedMath.json","build_id":"6795af3fb4cc777eb080e3d361568bdf"}}},"seenByCompiler":true},"script/Counter.s.sol":{"lastModificationDate":1731914665940,"contentHash":"a3f39f45f6d251978d0155b376261aca","sourceName":"script/Counter.s.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src\\Script.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol","src\\Counter.sol"],"versionRequirement":"^0.8.13","artifacts":{"CounterScript":{"0.8.26":{"path":"Counter.s.sol\\CounterScript.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"script/DeployGroth16Verifier.s.sol":{"lastModificationDate":1731947920690,"contentHash":"c267733a86929c599d9c2e636de39372","sourceName":"script/DeployGroth16Verifier.s.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src\\Script.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol","src\\hopital\\Groth16Verifier.sol"],"versionRequirement":"^0.8.13","artifacts":{"DeployG16Verify":{"0.8.26":{"path":"DeployGroth16Verifier.s.sol\\DeployG16Verify.json","build_id":"a9dfc5caaebeb5c961b515f47774f31e"}}},"seenByCompiler":true},"src/Counter.sol":{"lastModificationDate":1731914665940,"contentHash":"ae6c800a2b4c57768024d6e9423d39e8","sourceName":"src/Counter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.13","artifacts":{"Counter":{"0.8.26":{"path":"Counter.sol\\Counter.json","build_id":"6df80628dcc66930123d3d52de6e7790"}}},"seenByCompiler":true},"src/hopital/Groth16Verifier.sol":{"lastModificationDate":1731946452614,"contentHash":"e970d3282725dabc54cfa1c489e339c7","sourceName":"src/hopital/Groth16Verifier.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.7.0, <0.9.0","artifacts":{"Groth16Verifier":{"0.8.26":{"path":"Groth16Verifier.sol\\Groth16Verifier.json","build_id":"69217db49eb01dfc444a428c6f98b1b7"}}},"seenByCompiler":true},"src/hopital/History.sol":{"lastModificationDate":1731916932475,"contentHash":"ce6f2471401201ab8bb65cd4f6f0592a","sourceName":"src/hopital/History.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.13","artifacts":{"History":{"0.8.26":{"path":"History.sol\\History.json","build_id":"84d83be00ee32e1d4e26712358afea73"}}},"seenByCompiler":true},"src/hopital/Verifyer.sol":{"lastModificationDate":1731923889150,"contentHash":"d82ed8a4bf16f5a15df781a5436c0533","sourceName":"src/hopital/Verifyer.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":null,"artifacts":{},"seenByCompiler":true},"test/TestGroth16Verifier.t.sol":{"lastModificationDate":1731947976584,"contentHash":"17304f03dafca9df692487575d8a6805","sourceName":"test/TestGroth16Verifier.t.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src\\Script.sol","lib/forge-std/src/StdAssertions.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdError.sol","lib/forge-std/src/StdInvariant.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdToml.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src\\Test.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol","script/DeployGroth16Verifier.s.sol","src\\hopital\\Groth16Verifier.sol"],"versionRequirement":"^0.8.13","artifacts":{"TestGroth16Verifier":{"0.8.26":{"path":"TestGroth16Verifier.t.sol\\TestGroth16Verifier.json","build_id":"2d8d82aa779b6cbf29ec6760bbea5ffe"}}},"seenByCompiler":true}},"builds":["2d8d82aa779b6cbf29ec6760bbea5ffe","6795af3fb4cc777eb080e3d361568bdf","69217db49eb01dfc444a428c6f98b1b7","6df80628dcc66930123d3d52de6e7790","84d83be00ee32e1d4e26712358afea73","a9dfc5caaebeb5c961b515f47774f31e"]} \ No newline at end of file diff --git a/cache/test-failures b/cache/test-failures new file mode 100644 index 0000000..55abe38 --- /dev/null +++ b/cache/test-failures @@ -0,0 +1 @@ +setUp \ No newline at end of file diff --git a/out/DeployGroth16Verifier.s.sol/DeployG16Verify.json b/out/DeployGroth16Verifier.s.sol/DeployG16Verify.json new file mode 100644 index 0000000..c11ebe9 --- /dev/null +++ b/out/DeployGroth16Verifier.s.sol/DeployG16Verify.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_SCRIPT","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"groth16Verifier","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Groth16Verifier"}],"stateMutability":"view"},{"type":"function","name":"run","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Groth16Verifier"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052600c805462ff00ff191662010001179055348015602057600080fd5b506107bd806100306000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319c813be14610046578063c04062261461007d578063f8ccbf4714610085575b600080fd5b600c5461006090630100000090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100606100a8565b600c546100989062010000900460ff1681565b6040519015158152602001610074565b60007f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b0316637fb5297f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561010857600080fd5b505af115801561011c573d6000803e3d6000fd5b5050505060405161012c906101fd565b604051809103906000f080158015610148573d6000803e3d6000fd5b50600c60036101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166376eadd366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156101cd57600080fd5b505af11580156101e1573d6000803e3d6000fd5b5050600c54630100000090046001600160a01b03169392505050565b61057d8061020b8339019056fe6080604052348015600f57600080fd5b5061055e8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806343753b4d14610030575b600080fd5b61004361003e3660046104c1565b610057565b604051901515815260200160405180910390f35b6000610479565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f013546fdff9fc1a53a820ba6f97a9e2f5670e5329a9ce51fc9b6fe7bae39ee0885527f3045067b76279f4fc4e0f955dc99e07f5d5d148b7429628215c6e568ffa41f1c60208601526000608086018661019a87357f2aa96d636d8564adc9d81f1ee274c524b863373cb14088d9c1cd83d1ce45c70d7f2b36993ebff6ed5de853be07dc6367b280cb1327793bef6878df9a94ddf5d4f984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f0254654fc2952502b42a90356e352a86bda7701727e3a451ceff66491a5fe0cd60c08201527f06a47fc24954664f4a5610edf0c0876727b3cbecb7fef0d1cf99037fa602506660e08201527f0e871f84408619371d5bec1e962ceb85f26ec12e1b1ad316534396f467b4dfb16101008201527f2c6e608207ff07b5c03d0a8d9d3f088405e40811c97759f83c45e1081c6b31c86101208201527f10f00ca9c9a70e2fb1897668f9e18a70fc6344d0cb7e6dd7bd49ee1e40d09fd16101408201527f14d95ead938526f175c26be2e1dfdf3d2c78419d59d811ddb94bbaf160be370d610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2ca327150a7388a8c62be547045aa3f64ff32869f38f26a3d1fefa548e1d2b1d6102808201527f20b98ac5bab7749e76f180b4c9b7fa59095984af14264866c582f7d84f2e25a36102a08201527ee35ec673ced59cca9bb4dfd1da023bc7292ab8376cae63cd9a2b5030941e6d6102c08201527f109e74f9a5506d5d81597da4a30abf24dd6433482bc2b3b2d30f91adc04beacd6102e08201526020816103008360086107d05a03fa9051169695505050505050565b6040516103808101604052610491600084013561005e565b61049e818486888a6100fd565b90508060005260206000f35b80604081018310156104bb57600080fd5b92915050565b60008060008061012085870312156104d857600080fd5b6104e286866104aa565b935060c08501868111156104f557600080fd5b60408601935061050587826104aa565b925050856101208601111561051957600080fd5b5091949093509091610100019056fea264697066735822122061787d9324cfd0521dfb9222f2fac4a3576b6e5a8bf4f68b268a286375782f7764736f6c634300081a0033a2646970667358221220cb61a949516b68fbad99e0c15fead8754ef4f59a8d7994ef76bf8fa15faed29364736f6c634300081a0033","sourceMap":"188:284:24:-:0;;;3126:44:3;;;-1:-1:-1;;800:28:1;;;;;188:284:24;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c806319c813be14610046578063c04062261461007d578063f8ccbf4714610085575b600080fd5b600c5461006090630100000090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100606100a8565b600c546100989062010000900460ff1681565b6040519015158152602001610074565b60007f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b0316637fb5297f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561010857600080fd5b505af115801561011c573d6000803e3d6000fd5b5050505060405161012c906101fd565b604051809103906000f080158015610148573d6000803e3d6000fd5b50600c60036101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166376eadd366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156101cd57600080fd5b505af11580156101e1573d6000803e3d6000fd5b5050600c54630100000090046001600160a01b03169392505050565b61057d8061020b8339019056fe6080604052348015600f57600080fd5b5061055e8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806343753b4d14610030575b600080fd5b61004361003e3660046104c1565b610057565b604051901515815260200160405180910390f35b6000610479565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f013546fdff9fc1a53a820ba6f97a9e2f5670e5329a9ce51fc9b6fe7bae39ee0885527f3045067b76279f4fc4e0f955dc99e07f5d5d148b7429628215c6e568ffa41f1c60208601526000608086018661019a87357f2aa96d636d8564adc9d81f1ee274c524b863373cb14088d9c1cd83d1ce45c70d7f2b36993ebff6ed5de853be07dc6367b280cb1327793bef6878df9a94ddf5d4f984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f0254654fc2952502b42a90356e352a86bda7701727e3a451ceff66491a5fe0cd60c08201527f06a47fc24954664f4a5610edf0c0876727b3cbecb7fef0d1cf99037fa602506660e08201527f0e871f84408619371d5bec1e962ceb85f26ec12e1b1ad316534396f467b4dfb16101008201527f2c6e608207ff07b5c03d0a8d9d3f088405e40811c97759f83c45e1081c6b31c86101208201527f10f00ca9c9a70e2fb1897668f9e18a70fc6344d0cb7e6dd7bd49ee1e40d09fd16101408201527f14d95ead938526f175c26be2e1dfdf3d2c78419d59d811ddb94bbaf160be370d610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2ca327150a7388a8c62be547045aa3f64ff32869f38f26a3d1fefa548e1d2b1d6102808201527f20b98ac5bab7749e76f180b4c9b7fa59095984af14264866c582f7d84f2e25a36102a08201527ee35ec673ced59cca9bb4dfd1da023bc7292ab8376cae63cd9a2b5030941e6d6102c08201527f109e74f9a5506d5d81597da4a30abf24dd6433482bc2b3b2d30f91adc04beacd6102e08201526020816103008360086107d05a03fa9051169695505050505050565b6040516103808101604052610491600084013561005e565b61049e818486888a6100fd565b90508060005260206000f35b80604081018310156104bb57600080fd5b92915050565b60008060008061012085870312156104d857600080fd5b6104e286866104aa565b935060c08501868111156104f557600080fd5b60408601935061050587826104aa565b925050856101208601111561051957600080fd5b5091949093509091610100019056fea264697066735822122061787d9324cfd0521dfb9222f2fac4a3576b6e5a8bf4f68b268a286375782f7764736f6c634300081a0033a2646970667358221220cb61a949516b68fbad99e0c15fead8754ef4f59a8d7994ef76bf8fa15faed29364736f6c634300081a0033","sourceMap":"188:284:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;229:38;;;;;;;;-1:-1:-1;;;;;229:38:24;;;;;;-1:-1:-1;;;;;203:32:27;;;185:51;;173:2;158:18;229:38:24;;;;;;;;276:194;;;:::i;800:28:1:-;;;;;;;;;;;;;;;412:14:27;;405:22;387:41;;375:2;360:18;800:28:1;247:187:27;276:194:24;306:15;317:28:0;309:37;;-1:-1:-1;;;;;332:17:24;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;380:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;362:15;;:39;;;;;-1:-1:-1;;;;;362:39:24;;;;;-1:-1:-1;;;;;362:39:24;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;412:16:24;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;448:15:24;;;;;-1:-1:-1;;;;;448:15:24;;;-1:-1:-1;;;276:194:24:o;-1:-1:-1:-;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47","groth16Verifier()":"19c813be","run()":"c0406226"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"IS_SCRIPT\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"groth16Verifier\",\"outputs\":[{\"internalType\":\"contract Groth16Verifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"run\",\"outputs\":[{\"internalType\":\"contract Groth16Verifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"script/DeployGroth16Verifier.s.sol\":\"DeployG16Verify\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x7dd11ac4db798fa196e00a0cfa288ce984acac881f1f34de03fe3187deed58de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c15fb03d5545e2d8d3948661596410edec5ec278a73988914b14a05d0d54557\",\"dweb:/ipfs/QmWGjkLgp4wSrTrFxF8cmhghaXQp5VyXYQvWE1DUTPL4rG\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xc28b654cfbcafb8f7688c8dc69134921bb4841c82ddc2e5f27bcf5d8eb2177cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f1875b52fb32efefdc467d9566bf93d72dad036547ce6955e4f7a318eea9d6f\",\"dweb:/ipfs/QmbgbSX8JajLzTyWcPqrYAcsQcHNuGTFTKdQ3HNTvyRgdj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974\",\"dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51d822417db259b59eec2dfb7859285cef983a26b5d4fba20e1addabccc8734e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0e3b5abe0173ee6e479e4248eb4ee3a4374f7e08fb2848d93f5c2cf5e95214f1\",\"dweb:/ipfs/QmbUBD4NLFCuR6WHVx5unXH2uWHEhtADLcFrUwyev8iLrD\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab\",\"dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3\"]},\"script/DeployGroth16Verifier.s.sol\":{\"keccak256\":\"0x4ab15790ada2bcd9d072f09e418c69e2d3392db3f9f0a849870b2577d7531018\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b944dfe22168ef2f01aee169f91e09cd7a33e38c1af3778441181dab1f0f4c1f\",\"dweb:/ipfs/QmPnEcfLpSVEP33eRX7fPmw2unGRBLGRDWorw8qbKsPqzF\"]},\"src/hopital/Groth16Verifier.sol\":{\"keccak256\":\"0x470c24be9421a38786ec4ae94fa01fbabad9719eae3b41698b3743fab7eac414\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1337203bb576b2eed7fb2b7fa7437eb90f967b968a38ecd40bbb82462505a40a\",\"dweb:/ipfs/QmeK6RKPZE6uKygmYcVB2AkeMWQgzNoTH9TvzvSfZBhP9Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"IS_SCRIPT","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"groth16Verifier","outputs":[{"internalType":"contract Groth16Verifier","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"run","outputs":[{"internalType":"contract Groth16Verifier","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"script/DeployGroth16Verifier.s.sol":"DeployG16Verify"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x7dd11ac4db798fa196e00a0cfa288ce984acac881f1f34de03fe3187deed58de","urls":["bzz-raw://2c15fb03d5545e2d8d3948661596410edec5ec278a73988914b14a05d0d54557","dweb:/ipfs/QmWGjkLgp4wSrTrFxF8cmhghaXQp5VyXYQvWE1DUTPL4rG"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xc28b654cfbcafb8f7688c8dc69134921bb4841c82ddc2e5f27bcf5d8eb2177cf","urls":["bzz-raw://3f1875b52fb32efefdc467d9566bf93d72dad036547ce6955e4f7a318eea9d6f","dweb:/ipfs/QmbgbSX8JajLzTyWcPqrYAcsQcHNuGTFTKdQ3HNTvyRgdj"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500","urls":["bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974","dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51d822417db259b59eec2dfb7859285cef983a26b5d4fba20e1addabccc8734e","urls":["bzz-raw://0e3b5abe0173ee6e479e4248eb4ee3a4374f7e08fb2848d93f5c2cf5e95214f1","dweb:/ipfs/QmbUBD4NLFCuR6WHVx5unXH2uWHEhtADLcFrUwyev8iLrD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11","urls":["bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab","dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3"],"license":"MIT"},"script/DeployGroth16Verifier.s.sol":{"keccak256":"0x4ab15790ada2bcd9d072f09e418c69e2d3392db3f9f0a849870b2577d7531018","urls":["bzz-raw://b944dfe22168ef2f01aee169f91e09cd7a33e38c1af3778441181dab1f0f4c1f","dweb:/ipfs/QmPnEcfLpSVEP33eRX7fPmw2unGRBLGRDWorw8qbKsPqzF"],"license":"UNLICENSED"},"src/hopital/Groth16Verifier.sol":{"keccak256":"0x470c24be9421a38786ec4ae94fa01fbabad9719eae3b41698b3743fab7eac414","urls":["bzz-raw://1337203bb576b2eed7fb2b7fa7437eb90f967b968a38ecd40bbb82462505a40a","dweb:/ipfs/QmeK6RKPZE6uKygmYcVB2AkeMWQgzNoTH9TvzvSfZBhP9Z"],"license":"GPL-3.0"}},"version":1},"id":24} \ No newline at end of file diff --git a/out/Groth16Verifier.sol/Groth16Verifier.json b/out/Groth16Verifier.sol/Groth16Verifier.json new file mode 100644 index 0000000..a4bc378 --- /dev/null +++ b/out/Groth16Verifier.sol/Groth16Verifier.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"verifyProof","inputs":[{"name":"_pA","type":"uint256[2]","internalType":"uint256[2]"},{"name":"_pB","type":"uint256[2][2]","internalType":"uint256[2][2]"},{"name":"_pC","type":"uint256[2]","internalType":"uint256[2]"},{"name":"_pubSignals","type":"uint256[1]","internalType":"uint256[1]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b5061055e8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806343753b4d14610030575b600080fd5b61004361003e3660046104c1565b610057565b604051901515815260200160405180910390f35b6000610479565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f013546fdff9fc1a53a820ba6f97a9e2f5670e5329a9ce51fc9b6fe7bae39ee0885527f3045067b76279f4fc4e0f955dc99e07f5d5d148b7429628215c6e568ffa41f1c60208601526000608086018661019a87357f2aa96d636d8564adc9d81f1ee274c524b863373cb14088d9c1cd83d1ce45c70d7f2b36993ebff6ed5de853be07dc6367b280cb1327793bef6878df9a94ddf5d4f984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f0254654fc2952502b42a90356e352a86bda7701727e3a451ceff66491a5fe0cd60c08201527f06a47fc24954664f4a5610edf0c0876727b3cbecb7fef0d1cf99037fa602506660e08201527f0e871f84408619371d5bec1e962ceb85f26ec12e1b1ad316534396f467b4dfb16101008201527f2c6e608207ff07b5c03d0a8d9d3f088405e40811c97759f83c45e1081c6b31c86101208201527f10f00ca9c9a70e2fb1897668f9e18a70fc6344d0cb7e6dd7bd49ee1e40d09fd16101408201527f14d95ead938526f175c26be2e1dfdf3d2c78419d59d811ddb94bbaf160be370d610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2ca327150a7388a8c62be547045aa3f64ff32869f38f26a3d1fefa548e1d2b1d6102808201527f20b98ac5bab7749e76f180b4c9b7fa59095984af14264866c582f7d84f2e25a36102a08201527ee35ec673ced59cca9bb4dfd1da023bc7292ab8376cae63cd9a2b5030941e6d6102c08201527f109e74f9a5506d5d81597da4a30abf24dd6433482bc2b3b2d30f91adc04beacd6102e08201526020816103008360086107d05a03fa9051169695505050505050565b6040516103808101604052610491600084013561005e565b61049e818486888a6100fd565b90508060005260206000f35b80604081018310156104bb57600080fd5b92915050565b60008060008061012085870312156104d857600080fd5b6104e286866104aa565b935060c08501868111156104f557600080fd5b60408601935061050587826104aa565b925050856101208601111561051957600080fd5b5091949093509091610100019056fea264697066735822122061787d9324cfd0521dfb9222f2fac4a3576b6e5a8bf4f68b268a286375782f7764736f6c634300081a0033","sourceMap":"831:6230:20:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c806343753b4d14610030575b600080fd5b61004361003e3660046104c1565b610057565b604051901515815260200160405180910390f35b6000610479565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f013546fdff9fc1a53a820ba6f97a9e2f5670e5329a9ce51fc9b6fe7bae39ee0885527f3045067b76279f4fc4e0f955dc99e07f5d5d148b7429628215c6e568ffa41f1c60208601526000608086018661019a87357f2aa96d636d8564adc9d81f1ee274c524b863373cb14088d9c1cd83d1ce45c70d7f2b36993ebff6ed5de853be07dc6367b280cb1327793bef6878df9a94ddf5d4f984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f0254654fc2952502b42a90356e352a86bda7701727e3a451ceff66491a5fe0cd60c08201527f06a47fc24954664f4a5610edf0c0876727b3cbecb7fef0d1cf99037fa602506660e08201527f0e871f84408619371d5bec1e962ceb85f26ec12e1b1ad316534396f467b4dfb16101008201527f2c6e608207ff07b5c03d0a8d9d3f088405e40811c97759f83c45e1081c6b31c86101208201527f10f00ca9c9a70e2fb1897668f9e18a70fc6344d0cb7e6dd7bd49ee1e40d09fd16101408201527f14d95ead938526f175c26be2e1dfdf3d2c78419d59d811ddb94bbaf160be370d610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2ca327150a7388a8c62be547045aa3f64ff32869f38f26a3d1fefa548e1d2b1d6102808201527f20b98ac5bab7749e76f180b4c9b7fa59095984af14264866c582f7d84f2e25a36102a08201527ee35ec673ced59cca9bb4dfd1da023bc7292ab8376cae63cd9a2b5030941e6d6102c08201527f109e74f9a5506d5d81597da4a30abf24dd6433482bc2b3b2d30f91adc04beacd6102e08201526020816103008360086107d05a03fa9051169695505050505050565b6040516103808101604052610491600084013561005e565b61049e818486888a6100fd565b90508060005260206000f35b80604081018310156104bb57600080fd5b92915050565b60008060008061012085870312156104d857600080fd5b6104e286866104aa565b935060c08501868111156104f557600080fd5b60408601935061050587826104aa565b925050856101208601111561051957600080fd5b5091949093509091610100019056fea264697066735822122061787d9324cfd0521dfb9222f2fac4a3576b6e5a8bf4f68b268a286375782f7764736f6c634300081a0033","sourceMap":"831:6230:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3249:3809;;;;;;:::i;:::-;;:::i;:::-;;;1018:14:21;;1011:22;993:41;;981:2;966:18;3249:3809:20;;;;;;;;3390:4;3429:163;;;3486:1;3483;3480:8;3470:108;;3522:1;3519;3512:12;3555:4;3552:1;3545:15;3470:108;3429:163;:::o;3696:738::-;3747:11;3792:4;3786:11;3826:1;3821:3;3814:14;3866:1;3861:2;3856:3;3852:12;3845:23;3906:1;3901:2;3896:3;3892:12;3885:23;3983:2;3978:3;3974:2;3969:3;3966:1;3959:4;3952:5;3948:16;3937:49;3926:60;;4014:7;4004:107;;4055:1;4052;4045:12;4088:4;4085:1;4078:15;4004:107;4156:2;4150:9;4145:2;4140:3;4136:12;4129:31;4212:2;4208;4204:11;4198:18;4193:2;4188:3;4184:12;4177:40;4292:2;4288;4283:3;4278;4275:1;4268:4;4261:5;4257:16;4246:49;4235:60;;;4323:7;4313:107;;4364:1;4361;4354:12;4397:4;4394:1;4387:15;4313:107;;3696:738;;;;:::o;4448:2197::-;4636:4;4623:18;;4680:4;4675:2;4665:13;;4658:27;4503:4;4553:8;4543:19;;4547:4;4775:62;4804:32;;4798:4;4792;4547;4775:62;:::i;:::-;;4925:2;4912:16;4901:9;4894:35;5012:1;5005:2;5001;4997:11;4984:25;4981:1;4977:33;4973:41;4968:2;4957:9;4953:18;4946:69;5094:2;5081:16;5076:2;5065:9;5061:18;5054:44;5163:2;5159;5155:11;5142:25;5137:2;5126:9;5122:18;5115:53;5234:2;5230;5226:11;5213:25;5207:3;5196:9;5192:19;5185:54;5305:2;5301;5297:11;5284:25;5278:3;5267:9;5263:19;5256:54;5382:6;5376:3;5365:9;5361:19;5354:35;5434:6;5428:3;5417:9;5413:19;5406:35;5512:6;5506:3;5495:9;5491:19;5484:35;5564:6;5558:3;5547:9;5543:19;5536:35;5616:6;5610:3;5599:9;5595:19;5588:35;5668:6;5662:3;5651:9;5647:19;5640:35;5761:3;5755:4;5751:14;5745:21;5739:3;5728:9;5724:19;5717:50;5837:2;5832:3;5828:12;5822:4;5818:23;5812:30;5806:3;5795:9;5791:19;5784:59;5916:7;5910:3;5899:9;5895:19;5888:36;5969:7;5963:3;5952:9;5948:19;5941:36;6022:7;6016:3;6005:9;6001:19;5994:36;6075:7;6069:3;6058:9;6054:19;6047:36;6163:2;6150:16;6144:3;6133:9;6129:19;6122:45;6233:2;6229;6225:11;6212:25;6206:3;6195:9;6191:19;6184:54;6310:7;6304:3;6293:9;6289:19;6282:36;6363:7;6357:3;6346:9;6342:19;6335:36;6416:7;6410:3;6399:9;6395:19;6388:36;6469:7;6463:3;6452:9;6448:19;6441:36;6570:4;6559:9;6554:3;6543:9;6540:1;6533:4;6526:5;6522:16;6511:64;6614:16;;6601:30;;4448:2197;-1:-1:-1;;;;;;4448:2197:20:o;:::-;6677:4;6671:11;6718:8;6712:4;6708:19;6702:4;6695:33;6806:45;6847:1;6834:11;6830:19;6817:33;6806:45;:::i;:::-;6933:46;6974:4;6961:11;6956:3;6951;6946;6933:46;:::i;:::-;6918:61;;7003:7;7000:1;6993:18;7035:4;7032:1;7025:15;14:159:21;108:6;141:2;129:15;;126:24;-1:-1:-1;123:44:21;;;163:1;160;153:12;123:44;14:159;;;;:::o;178:670::-;389:6;397;405;413;466:3;454:9;445:7;441:23;437:33;434:53;;;483:1;480;473:12;434:53;506;551:7;540:9;506:53;:::i;:::-;496:63;;593:3;582:9;578:19;616:7;612:2;609:15;606:35;;;637:1;634;627:12;606:35;675:2;664:9;660:18;650:28;;697:46;735:7;731:2;697:46;:::i;:::-;687:56;;;779:7;773:3;762:9;758:19;755:32;752:52;;;800:1;797;790:12;752:52;-1:-1:-1;178:670:21;;;;-1:-1:-1;178:670:21;;838:3;823:19;;178:670::o","linkReferences":{}},"methodIdentifiers":{"verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[1])":"43753b4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"_pA\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"_pB\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"_pC\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[1]\",\"name\":\"_pubSignals\",\"type\":\"uint256[1]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/hopital/Groth16Verifier.sol\":\"Groth16Verifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/hopital/Groth16Verifier.sol\":{\"keccak256\":\"0x470c24be9421a38786ec4ae94fa01fbabad9719eae3b41698b3743fab7eac414\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1337203bb576b2eed7fb2b7fa7437eb90f967b968a38ecd40bbb82462505a40a\",\"dweb:/ipfs/QmeK6RKPZE6uKygmYcVB2AkeMWQgzNoTH9TvzvSfZBhP9Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256[2]","name":"_pA","type":"uint256[2]"},{"internalType":"uint256[2][2]","name":"_pB","type":"uint256[2][2]"},{"internalType":"uint256[2]","name":"_pC","type":"uint256[2]"},{"internalType":"uint256[1]","name":"_pubSignals","type":"uint256[1]"}],"stateMutability":"view","type":"function","name":"verifyProof","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/hopital/Groth16Verifier.sol":"Groth16Verifier"},"evmVersion":"paris","libraries":{}},"sources":{"src/hopital/Groth16Verifier.sol":{"keccak256":"0x470c24be9421a38786ec4ae94fa01fbabad9719eae3b41698b3743fab7eac414","urls":["bzz-raw://1337203bb576b2eed7fb2b7fa7437eb90f967b968a38ecd40bbb82462505a40a","dweb:/ipfs/QmeK6RKPZE6uKygmYcVB2AkeMWQgzNoTH9TvzvSfZBhP9Z"],"license":"GPL-3.0"}},"version":1},"id":20} \ No newline at end of file diff --git a/out/TestGroth16Verifier.t.sol/TestGroth16Verifier.json b/out/TestGroth16Verifier.t.sol/TestGroth16Verifier.json new file mode 100644 index 0000000..199f8c2 --- /dev/null +++ b/out/TestGroth16Verifier.t.sol/TestGroth16Verifier.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deployG16Verify","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract DeployG16Verify"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"groth16Verifier","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Groth16Verifier"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testVerifyProof","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x600c8054600160ff199182168117909255601f8054909116909117905560c0604052600560809081526437bbb732b960d91b60a05261003d9061006f565b602180546001600160a01b0319166001600160a01b039290921691909117905534801561006957600080fd5b50610249565b600061007a82610081565b5092915050565b6000808260405160200161009591906101bb565b60408051808303601f190181529082905280516020909101206001625e79b760e01b03198252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa158015610100573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012491906101d7565b6040516318caf8e360e31b8152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906101609085908790600401610207565b600060405180830381600087803b15801561017a57600080fd5b505af115801561018e573d6000803e3d6000fd5b50505050915091565b60005b838110156101b257818101518382015260200161019a565b50506000910152565b600082516101cd818460208701610197565b9190910192915050565b6000602082840312156101e957600080fd5b81516001600160a01b038116811461020057600080fd5b9392505050565b60018060a01b03831681526040602082015260008251806040840152610234816060850160208701610197565b601f01601f1916919091016060019392505050565b611be1806102586000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806385226c8111610097578063b5508aa911610066578063b5508aa9146101e0578063ba414fa6146101e8578063e20c9f7114610200578063fa7626d41461020857600080fd5b806385226c811461019b57806385a944a5146101b0578063916a17c6146101c3578063b0464fdc146101d857600080fd5b80633bdf4025116100d35780633bdf40251461016e5780633e5e3c23146101765780633f7286f41461017e57806366d9a9a01461018657600080fd5b80630a9254e41461010557806319c813be1461010f5780631ed7831c146101445780632ade388014610159575b600080fd5b61010d610215565b005b601f546101279061010090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61014c6103e8565b60405161013b9190610f1e565b61016161044a565b60405161013b9190610fb0565b61010d61058c565b61014c61078c565b61014c6107ec565b61018e61084c565b60405161013b91906110c2565b6101a36109b9565b60405161013b9190611142565b602054610127906001600160a01b031681565b6101cb610a89565b60405161013b919061119b565b6101cb610b6f565b6101a3610c55565b6101f0610d25565b604051901515815260200161013b565b61014c610dc9565b601f546101f09060ff1681565b602154610233906001600160a01b0316678ac7230489e80000610e29565b6021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801561028c57600080fd5b505af11580156102a0573d6000803e3d6000fd5b505050506040516102b090610f11565b604051809103906000f0801580156102cc573d6000803e3d6000fd5b50602080546001600160a01b0319166001600160a01b0392909216918217815560408051636020311360e11b8152905163c04062269260048084019391929182900301816000875af1158015610326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034a9190611214565b601f60016101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156103ce57600080fd5b505af11580156103e2573d6000803e3d6000fd5b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801561044057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610422575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b8282101561058357600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101561056c5783829060005260206000200180546104df90611244565b80601f016020809104026020016040519081016040528092919081815260200182805461050b90611244565b80156105585780601f1061052d57610100808354040283529160200191610558565b820191906000526020600020905b81548152906001019060200180831161053b57829003601f168201915b5050505050815260200190600101906104c0565b50505050815250508152602001906001019061046e565b50505050905090565b6040805180820182526001808252600260208084018290528451608081018652808601938452606081019290925291815283518085018552600381526004818401819052828401919091528451808601865260058152600681850152855193840186526007845260215495516303223eab60e11b81526001600160a01b0390961691860191909152929390929190737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801561065357600080fd5b505af1158015610667573d6000803e3d6000fd5b5050601f546040516343753b4d60e01b8152600093506101009091046001600160a01b031691506343753b4d906106a89088908890889088906004016112a1565b602060405180830381865afa1580156106c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e99190611326565b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561074957600080fd5b505af115801561075d573d6000803e3d6000fd5b50505050610785816001604051806060016040528060318152602001611b7b60319139610ea1565b5050505050565b60606018805480602002602001604051908101604052809291908181526020018280548015610440576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610422575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610440576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610422575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561058357838290600052602060002090600202016040518060400160405290816000820180546108a390611244565b80601f01602080910402602001604051908101604052809291908181526020018280546108cf90611244565b801561091c5780601f106108f15761010080835404028352916020019161091c565b820191906000526020600020905b8154815290600101906020018083116108ff57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109a157602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116109635790505b50505050508152505081526020019060010190610870565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156105835783829060005260206000200180546109fc90611244565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2890611244565b8015610a755780601f10610a4a57610100808354040283529160200191610a75565b820191906000526020600020905b815481529060010190602001808311610a5857829003601f168201915b5050505050815260200190600101906109dd565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156105835760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610b5757602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411610b195790505b50505050508152505081526020019060010190610aad565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156105835760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610c3d57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411610bff5790505b50505050508152505081526020019060010190610b93565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610583578382906000526020600020018054610c9890611244565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc490611244565b8015610d115780601f10610ce657610100808354040283529160200191610d11565b820191906000526020600020905b815481529060010190602001808311610cf457829003601f168201915b505050505081526020019060010190610c79565b60085460009060ff1615610d3d575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b602483015260009163667f9d7090604401602060405180830381865afa158015610d9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc29190611348565b1415905090565b60606015805480602002602001604051908101604052809291908181526020018280548015610440576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610422575050505050905090565b60405163c88a5e6d60e01b81526001600160a01b038316600482015260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b158015610e8557600080fd5b505af1158015610e99573d6000803e3d6000fd5b505050505050565b6040516326d8cf3f60e11b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634db19e7e90610edc90869086908690600401611361565b60006040518083038186803b158015610ef457600080fd5b505afa158015610f08573d6000803e3d6000fd5b50505050505050565b6107ed8061138e83390190565b602080825282518282018190526000918401906040840190835b81811015610f5f5783516001600160a01b0316835260209384019390920191600101610f38565b509095945050505050565b6000815180845260005b81811015610f9057602081850181015186830182015201610f74565b506000602082860101526020601f19601f83011685010191505092915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561107057603f19878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b8181101561105657605f198a8503018352611040848651610f6a565b6020958601959094509290920191600101611024565b509197505050602094850194929092019150600101610fd8565b50929695505050505050565b600081518084526020840193506020830160005b828110156110b85781516001600160e01b031916865260209586019590910190600101611090565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561107057603f1987860301845281518051604087526111106040880182610f6a565b905060208201519150868103602088015261112b818361107c565b9650505060209384019391909101906001016110ea565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561107057603f19878603018452611186858351610f6a565b9450602093840193919091019060010161116a565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561107057868503603f19018452815180516001600160a01b031686526020908101516040918701829052906111fe9087018261107c565b95505060209384019391909101906001016111c3565b60006020828403121561122657600080fd5b81516001600160a01b038116811461123d57600080fd5b9392505050565b600181811c9082168061125857607f821691505b60208210810361127857634e487b7160e01b600052602260045260246000fd5b50919050565b8060005b60028110156103e2578151845260209384019390910190600101611282565b61012081016112b0828761127e565b604082018560005b60028110156112e2576112cc83835161127e565b60409290920191602091909101906001016112b8565b5050506112f260c083018561127e565b61010082018360005b600181101561131a5781518352602092830192909101906001016112fb565b50505095945050505050565b60006020828403121561133857600080fd5b8151801515811461123d57600080fd5b60006020828403121561135a57600080fd5b5051919050565b831515815282151560208201526060604082015260006113846060830184610f6a565b9594505050505056fe6080604052600c805462ff00ff191662010001179055348015602057600080fd5b506107bd806100306000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319c813be14610046578063c04062261461007d578063f8ccbf4714610085575b600080fd5b600c5461006090630100000090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100606100a8565b600c546100989062010000900460ff1681565b6040519015158152602001610074565b60007f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b0316637fb5297f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561010857600080fd5b505af115801561011c573d6000803e3d6000fd5b5050505060405161012c906101fd565b604051809103906000f080158015610148573d6000803e3d6000fd5b50600c60036101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166376eadd366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156101cd57600080fd5b505af11580156101e1573d6000803e3d6000fd5b5050600c54630100000090046001600160a01b03169392505050565b61057d8061020b8339019056fe6080604052348015600f57600080fd5b5061055e8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806343753b4d14610030575b600080fd5b61004361003e3660046104c1565b610057565b604051901515815260200160405180910390f35b6000610479565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f013546fdff9fc1a53a820ba6f97a9e2f5670e5329a9ce51fc9b6fe7bae39ee0885527f3045067b76279f4fc4e0f955dc99e07f5d5d148b7429628215c6e568ffa41f1c60208601526000608086018661019a87357f2aa96d636d8564adc9d81f1ee274c524b863373cb14088d9c1cd83d1ce45c70d7f2b36993ebff6ed5de853be07dc6367b280cb1327793bef6878df9a94ddf5d4f984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f0254654fc2952502b42a90356e352a86bda7701727e3a451ceff66491a5fe0cd60c08201527f06a47fc24954664f4a5610edf0c0876727b3cbecb7fef0d1cf99037fa602506660e08201527f0e871f84408619371d5bec1e962ceb85f26ec12e1b1ad316534396f467b4dfb16101008201527f2c6e608207ff07b5c03d0a8d9d3f088405e40811c97759f83c45e1081c6b31c86101208201527f10f00ca9c9a70e2fb1897668f9e18a70fc6344d0cb7e6dd7bd49ee1e40d09fd16101408201527f14d95ead938526f175c26be2e1dfdf3d2c78419d59d811ddb94bbaf160be370d610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2ca327150a7388a8c62be547045aa3f64ff32869f38f26a3d1fefa548e1d2b1d6102808201527f20b98ac5bab7749e76f180b4c9b7fa59095984af14264866c582f7d84f2e25a36102a08201527ee35ec673ced59cca9bb4dfd1da023bc7292ab8376cae63cd9a2b5030941e6d6102c08201527f109e74f9a5506d5d81597da4a30abf24dd6433482bc2b3b2d30f91adc04beacd6102e08201526020816103008360086107d05a03fa9051169695505050505050565b6040516103808101604052610491600084013561005e565b61049e818486888a6100fd565b90508060005260206000f35b80604081018310156104bb57600080fd5b92915050565b60008060008061012085870312156104d857600080fd5b6104e286866104aa565b935060c08501868111156104f557600080fd5b60408601935061050587826104aa565b925050856101208601111561051957600080fd5b5091949093509091610100019056fea264697066735822122061787d9324cfd0521dfb9222f2fac4a3576b6e5a8bf4f68b268a286375782f7764736f6c634300081a0033a2646970667358221220cb61a949516b68fbad99e0c15fead8754ef4f59a8d7994ef76bf8fa15faed29364736f6c634300081a003376657269667950726f6f662073686f756c642072657475726e2066616c736520666f7220696e76616c69642070726f6f66a26469706673582212209c5acaad78064214cfea3b03470ee71c8a566e6f959c7510d57df1e1bb954c8364736f6c634300081a0033","sourceMap":"3126:44:3:-:0;;;3166:4;-1:-1:-1;;3126:44:3;;;;;;;;1016:26:13;;;;;;;;;;;452:17:26;255:1294;452:17;;255:1294;452:17;;;-1:-1:-1;;;452:17:26;;;;:8;:17::i;:::-;436:33;;;-1:-1:-1;;;;;;436:33:26;-1:-1:-1;;;;;436:33:26;;;;;;;;;;255:1294;;;;;;;;;;;;20454:125:4;20518:12;20552:20;20567:4;20552:14;:20::i;:::-;-1:-1:-1;20542:30:4;20454:125;-1:-1:-1;;20454:125:4:o;20173:242::-;20243:12;20257:18;20335:4;20318:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20318:22:4;;;;;;;20308:33;;20318:22;20308:33;;;;-1:-1:-1;;;;;;20359:19:4;;;;;709:25:27;;;20308:33:4;-1:-1:-1;20359:7:4;;;;682:18:27;;20359:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20388:20;;-1:-1:-1;;;20388:20:4;;20352:26;;-1:-1:-1;20388:8:4;;;;:20;;20352:26;;20403:4;;20388:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20173:242;;;:::o;14:250:27:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:27;238:16;;231:27;14:250::o;269:289::-;400:3;438:6;432:13;454:66;513:6;508:3;501:4;493:6;489:17;454:66;:::i;:::-;536:16;;;;;269:289;-1:-1:-1;;269:289:27:o;745:290::-;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;910:16;;-1:-1:-1;;;;;955:31:27;;945:42;;935:70;;1001:1;998;991:12;935:70;1024:5;745:290;-1:-1:-1;;;745:290:27:o;1040:493::-;1246:1;1242;1237:3;1233:11;1229:19;1221:6;1217:32;1206:9;1199:51;1286:2;1281;1270:9;1266:18;1259:30;1180:4;1318:6;1312:13;1361:6;1356:2;1345:9;1341:18;1334:34;1377:79;1449:6;1444:2;1433:9;1429:18;1424:2;1416:6;1412:15;1377:79;:::i;:::-;1517:2;1496:15;-1:-1:-1;;1492:29:27;1477:45;;;;1524:2;1473:54;;1040:493;-1:-1:-1;;;1040:493:27:o;:::-;255:1294:26;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101005760003560e01c806385226c8111610097578063b5508aa911610066578063b5508aa9146101e0578063ba414fa6146101e8578063e20c9f7114610200578063fa7626d41461020857600080fd5b806385226c811461019b57806385a944a5146101b0578063916a17c6146101c3578063b0464fdc146101d857600080fd5b80633bdf4025116100d35780633bdf40251461016e5780633e5e3c23146101765780633f7286f41461017e57806366d9a9a01461018657600080fd5b80630a9254e41461010557806319c813be1461010f5780631ed7831c146101445780632ade388014610159575b600080fd5b61010d610215565b005b601f546101279061010090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61014c6103e8565b60405161013b9190610f1e565b61016161044a565b60405161013b9190610fb0565b61010d61058c565b61014c61078c565b61014c6107ec565b61018e61084c565b60405161013b91906110c2565b6101a36109b9565b60405161013b9190611142565b602054610127906001600160a01b031681565b6101cb610a89565b60405161013b919061119b565b6101cb610b6f565b6101a3610c55565b6101f0610d25565b604051901515815260200161013b565b61014c610dc9565b601f546101f09060ff1681565b602154610233906001600160a01b0316678ac7230489e80000610e29565b6021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801561028c57600080fd5b505af11580156102a0573d6000803e3d6000fd5b505050506040516102b090610f11565b604051809103906000f0801580156102cc573d6000803e3d6000fd5b50602080546001600160a01b0319166001600160a01b0392909216918217815560408051636020311360e11b8152905163c04062269260048084019391929182900301816000875af1158015610326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034a9190611214565b601f60016101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156103ce57600080fd5b505af11580156103e2573d6000803e3d6000fd5b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801561044057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610422575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b8282101561058357600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101561056c5783829060005260206000200180546104df90611244565b80601f016020809104026020016040519081016040528092919081815260200182805461050b90611244565b80156105585780601f1061052d57610100808354040283529160200191610558565b820191906000526020600020905b81548152906001019060200180831161053b57829003601f168201915b5050505050815260200190600101906104c0565b50505050815250508152602001906001019061046e565b50505050905090565b6040805180820182526001808252600260208084018290528451608081018652808601938452606081019290925291815283518085018552600381526004818401819052828401919091528451808601865260058152600681850152855193840186526007845260215495516303223eab60e11b81526001600160a01b0390961691860191909152929390929190737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801561065357600080fd5b505af1158015610667573d6000803e3d6000fd5b5050601f546040516343753b4d60e01b8152600093506101009091046001600160a01b031691506343753b4d906106a89088908890889088906004016112a1565b602060405180830381865afa1580156106c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e99190611326565b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561074957600080fd5b505af115801561075d573d6000803e3d6000fd5b50505050610785816001604051806060016040528060318152602001611b7b60319139610ea1565b5050505050565b60606018805480602002602001604051908101604052809291908181526020018280548015610440576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610422575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610440576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610422575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561058357838290600052602060002090600202016040518060400160405290816000820180546108a390611244565b80601f01602080910402602001604051908101604052809291908181526020018280546108cf90611244565b801561091c5780601f106108f15761010080835404028352916020019161091c565b820191906000526020600020905b8154815290600101906020018083116108ff57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109a157602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116109635790505b50505050508152505081526020019060010190610870565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156105835783829060005260206000200180546109fc90611244565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2890611244565b8015610a755780601f10610a4a57610100808354040283529160200191610a75565b820191906000526020600020905b815481529060010190602001808311610a5857829003601f168201915b5050505050815260200190600101906109dd565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156105835760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610b5757602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411610b195790505b50505050508152505081526020019060010190610aad565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156105835760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610c3d57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411610bff5790505b50505050508152505081526020019060010190610b93565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610583578382906000526020600020018054610c9890611244565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc490611244565b8015610d115780601f10610ce657610100808354040283529160200191610d11565b820191906000526020600020905b815481529060010190602001808311610cf457829003601f168201915b505050505081526020019060010190610c79565b60085460009060ff1615610d3d575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b602483015260009163667f9d7090604401602060405180830381865afa158015610d9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc29190611348565b1415905090565b60606015805480602002602001604051908101604052809291908181526020018280548015610440576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610422575050505050905090565b60405163c88a5e6d60e01b81526001600160a01b038316600482015260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b158015610e8557600080fd5b505af1158015610e99573d6000803e3d6000fd5b505050505050565b6040516326d8cf3f60e11b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634db19e7e90610edc90869086908690600401611361565b60006040518083038186803b158015610ef457600080fd5b505afa158015610f08573d6000803e3d6000fd5b50505050505050565b6107ed8061138e83390190565b602080825282518282018190526000918401906040840190835b81811015610f5f5783516001600160a01b0316835260209384019390920191600101610f38565b509095945050505050565b6000815180845260005b81811015610f9057602081850181015186830182015201610f74565b506000602082860101526020601f19601f83011685010191505092915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561107057603f19878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b8181101561105657605f198a8503018352611040848651610f6a565b6020958601959094509290920191600101611024565b509197505050602094850194929092019150600101610fd8565b50929695505050505050565b600081518084526020840193506020830160005b828110156110b85781516001600160e01b031916865260209586019590910190600101611090565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561107057603f1987860301845281518051604087526111106040880182610f6a565b905060208201519150868103602088015261112b818361107c565b9650505060209384019391909101906001016110ea565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561107057603f19878603018452611186858351610f6a565b9450602093840193919091019060010161116a565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561107057868503603f19018452815180516001600160a01b031686526020908101516040918701829052906111fe9087018261107c565b95505060209384019391909101906001016111c3565b60006020828403121561122657600080fd5b81516001600160a01b038116811461123d57600080fd5b9392505050565b600181811c9082168061125857607f821691505b60208210810361127857634e487b7160e01b600052602260045260246000fd5b50919050565b8060005b60028110156103e2578151845260209384019390910190600101611282565b61012081016112b0828761127e565b604082018560005b60028110156112e2576112cc83835161127e565b60409290920191602091909101906001016112b8565b5050506112f260c083018561127e565b61010082018360005b600181101561131a5781518352602092830192909101906001016112fb565b50505095945050505050565b60006020828403121561133857600080fd5b8151801515811461123d57600080fd5b60006020828403121561135a57600080fd5b5051919050565b831515815282151560208201526060604082015260006113846060830184610f6a565b9594505050505056fe6080604052600c805462ff00ff191662010001179055348015602057600080fd5b506107bd806100306000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319c813be14610046578063c04062261461007d578063f8ccbf4714610085575b600080fd5b600c5461006090630100000090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100606100a8565b600c546100989062010000900460ff1681565b6040519015158152602001610074565b60007f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b0316637fb5297f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561010857600080fd5b505af115801561011c573d6000803e3d6000fd5b5050505060405161012c906101fd565b604051809103906000f080158015610148573d6000803e3d6000fd5b50600c60036101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166376eadd366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156101cd57600080fd5b505af11580156101e1573d6000803e3d6000fd5b5050600c54630100000090046001600160a01b03169392505050565b61057d8061020b8339019056fe6080604052348015600f57600080fd5b5061055e8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806343753b4d14610030575b600080fd5b61004361003e3660046104c1565b610057565b604051901515815260200160405180910390f35b6000610479565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f013546fdff9fc1a53a820ba6f97a9e2f5670e5329a9ce51fc9b6fe7bae39ee0885527f3045067b76279f4fc4e0f955dc99e07f5d5d148b7429628215c6e568ffa41f1c60208601526000608086018661019a87357f2aa96d636d8564adc9d81f1ee274c524b863373cb14088d9c1cd83d1ce45c70d7f2b36993ebff6ed5de853be07dc6367b280cb1327793bef6878df9a94ddf5d4f984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f0254654fc2952502b42a90356e352a86bda7701727e3a451ceff66491a5fe0cd60c08201527f06a47fc24954664f4a5610edf0c0876727b3cbecb7fef0d1cf99037fa602506660e08201527f0e871f84408619371d5bec1e962ceb85f26ec12e1b1ad316534396f467b4dfb16101008201527f2c6e608207ff07b5c03d0a8d9d3f088405e40811c97759f83c45e1081c6b31c86101208201527f10f00ca9c9a70e2fb1897668f9e18a70fc6344d0cb7e6dd7bd49ee1e40d09fd16101408201527f14d95ead938526f175c26be2e1dfdf3d2c78419d59d811ddb94bbaf160be370d610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2ca327150a7388a8c62be547045aa3f64ff32869f38f26a3d1fefa548e1d2b1d6102808201527f20b98ac5bab7749e76f180b4c9b7fa59095984af14264866c582f7d84f2e25a36102a08201527ee35ec673ced59cca9bb4dfd1da023bc7292ab8376cae63cd9a2b5030941e6d6102c08201527f109e74f9a5506d5d81597da4a30abf24dd6433482bc2b3b2d30f91adc04beacd6102e08201526020816103008360086107d05a03fa9051169695505050505050565b6040516103808101604052610491600084013561005e565b61049e818486888a6100fd565b90508060005260206000f35b80604081018310156104bb57600080fd5b92915050565b60008060008061012085870312156104d857600080fd5b6104e286866104aa565b935060c08501868111156104f557600080fd5b60408601935061050587826104aa565b925050856101208601111561051957600080fd5b5091949093509091610100019056fea264697066735822122061787d9324cfd0521dfb9222f2fac4a3576b6e5a8bf4f68b268a286375782f7764736f6c634300081a0033a2646970667358221220cb61a949516b68fbad99e0c15fead8754ef4f59a8d7994ef76bf8fa15faed29364736f6c634300081a003376657269667950726f6f662073686f756c642072657475726e2066616c736520666f7220696e76616c69642070726f6f66a26469706673582212209c5acaad78064214cfea3b03470ee71c8a566e6f959c7510d57df1e1bb954c8364736f6c634300081a0033","sourceMap":"255:1294:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;476:364;;;:::i;:::-;;298:38;;;;;;;;-1:-1:-1;;;;;298:38:26;;;;;;-1:-1:-1;;;;;203:32:27;;;185:51;;173:2;158:18;298:38:26;;;;;;;;2907:134:6;;;:::i;:::-;;;;;;;:::i;3823:151::-;;;:::i;:::-;;;;;;;:::i;849:698:26:-;;;:::i;3684:133:6:-;;;:::i;3385:141::-;;;:::i;3193:186::-;;;:::i;:::-;;;;;;;:::i;3047:140::-;;;:::i;:::-;;;;;;;:::i;342:38:26:-;;;;;-1:-1:-1;;;;;342:38:26;;;3532:146:6;;;:::i;:::-;;;;;;;:::i;2754:147::-;;;:::i;2459:141::-;;;:::i;1243:204:2:-;;;:::i;:::-;;;6745:14:27;;6738:22;6720:41;;6708:2;6693:18;1243:204:2;6580:187:27;2606:142:6;;;:::i;1016:26:13:-;;;;;;;;;476:364:26;546:5;;541:28;;-1:-1:-1;;;;;546:5:26;422:8;541:4;:28::i;:::-;661:5;;647:20;;-1:-1:-1;;;647:20:26;;-1:-1:-1;;;;;661:5:26;;;647:20;;;185:51:27;647:13:26;;;;158:18:27;;647:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;691:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;673:15:26;:39;;-1:-1:-1;;;;;;673:39:26;-1:-1:-1;;;;;673:39:26;;;;;;;;;736:21;;;-1:-1:-1;;;736:21:26;;;;:19;;:21;;;;;673:15;;736:21;;;;;;-1:-1:-1;673:39:26;736:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;718:15;;:39;;;;;-1:-1:-1;;;;;718:39:26;;;;;-1:-1:-1;;;;;718:39:26;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;823:12:26;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;476:364::o;2907:134:6:-;2954:33;3018:16;2999:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:35:6;;;;;;;;;;;;;;;;;;;;;;;2907:134;:::o;3823:151::-;3872:42;3948:19;3926:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3926:41:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3823:151;:::o;849:698:26:-;949:47;;;;;;;;981:1;949:47;;;993:1;949:47;;;;;;;1006:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:1;1006:78;;1080:1;1006:78;;;;;;-1:-1:-1;;;1006:78:26;;;;1094:47;;;;;;;1126:1;1094:47;;1138:1;1094:47;;;;1151:43;;;;;;;1191:1;1151:43;;1260:5;;1246:20;;-1:-1:-1;;;1246:20:26;;-1:-1:-1;;;;;1260:5:26;;;1246:20;;;185:51:27;;;;949:47:26;;1006:78;;1094:47;1151:43;1246:13;;;;158:18:27;;1246:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1290:15:26;;:51;;-1:-1:-1;;;1290:51:26;;1276:11;;-1:-1:-1;1290:15:26;;;;-1:-1:-1;;;;;1290:15:26;;-1:-1:-1;1290:27:26;;:51;;1318:2;;1322;;1326;;1330:10;;1290:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1276:65;;317:28:0;309:37;;-1:-1:-1;;;;;1351:12:26;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1465:75;1474:6;1482:4;1465:75;;;;;;;;;;;;;;;;;:8;:75::i;:::-;885:662;;;;;849:698::o;3684:133:6:-;3730:33;3794:16;3775:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3775:35:6;;;;;;;;;;;;;;;;;;;;;;3684:133;:::o;3385:141::-;3433:35;3501:18;3480:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3480:39:6;;;;;;;;;;;;;;;;;;;;;;3385:141;:::o;3193:186::-;3249:56;3346:26;3317:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3317:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3047:140;3095:34;3162:18;3141:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3532:146;3580:40;3653:18;3632:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3632:39:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3632:39:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2754:147;2803:40;2876:18;2855:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2855:39:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2855:39:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2459:141;2508:34;2575:18;2554:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:2;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:2;;;;;1243:204::o;1298:143::-;1377:39;;-1:-1:-1;;;1377:39:2;;:7;:39;;;9638:51:27;;;-1:-1:-1;;;9705:18:27;;;9698:34;1428:1:2;;1377:7;;9611:18:27;;1377:39:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2606:142:6:-;2655:35;2723:18;2702:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2702:39:6;;;;;;;;;;;;;;;;;;;;;;2606:142;:::o;26735:91:4:-;26802:17;;-1:-1:-1;;;26802:17:4;;-1:-1:-1;;;;;9656:32:27;;26802:17:4;;;9638:51:27;9705:18;;;9698:34;;;26802:7:4;;;;9611:18:27;;26802:17:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26735:91;;:::o;2136:128:2:-;2228:29;;-1:-1:-1;;;2228:29:2;;:11;;;;:29;;2240:4;;2246:5;;2253:3;;2228:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2136:128;;;:::o;-1:-1:-1:-;;;;;;;;:::o;247:637:27:-;437:2;449:21;;;519:13;;422:18;;;541:22;;;389:4;;620:15;;;594:2;579:18;;;389:4;663:195;677:6;674:1;671:13;663:195;;;742:13;;-1:-1:-1;;;;;738:39:27;726:52;;807:2;833:15;;;;798:12;;;;774:1;692:9;663:195;;;-1:-1:-1;875:3:27;;247:637;-1:-1:-1;;;;;247:637:27:o;889:400::-;931:3;969:5;963:12;996:6;991:3;984:19;1021:1;1031:139;1045:6;1042:1;1039:13;1031:139;;;1153:4;1138:13;;;1134:24;;1128:31;1108:11;;;1104:22;;1097:63;1060:12;1031:139;;;1035:3;1215:1;1208:4;1199:6;1194:3;1190:16;1186:27;1179:38;1278:4;1271:2;1267:7;1262:2;1254:6;1250:15;1246:29;1241:3;1237:39;1233:50;1226:57;;;889:400;;;;:::o;1294:1626::-;1498:4;1546:2;1535:9;1531:18;1576:2;1565:9;1558:21;1599:6;1634;1628:13;1665:6;1657;1650:22;1703:2;1692:9;1688:18;1681:25;;1765:2;1755:6;1752:1;1748:14;1737:9;1733:30;1729:39;1715:53;;1803:2;1795:6;1791:15;1824:1;1834:1057;1848:6;1845:1;1842:13;1834:1057;;;-1:-1:-1;;1913:22:27;;;1909:36;1897:49;;1969:13;;2056:9;;-1:-1:-1;;;;;2052:35:27;2037:51;;2135:2;2127:11;;;2121:18;2021:2;2159:15;;;2152:27;;;2240:19;;2009:15;;;2272:24;;;2427:21;;;2330:2;2380:1;2376:16;;;2364:29;;2360:38;;;2318:15;;;;-1:-1:-1;2486:296:27;2502:8;2497:3;2494:17;2486:296;;;2608:2;2604:7;2595:6;2587;2583:19;2579:33;2572:5;2565:48;2640:42;2675:6;2664:8;2658:15;2640:42;:::i;:::-;2725:2;2711:17;;;;2630:52;;-1:-1:-1;2754:14:27;;;;;2530:1;2521:11;2486:296;;;-1:-1:-1;2805:6:27;;-1:-1:-1;;;2846:2:27;2869:12;;;;2834:15;;;;;-1:-1:-1;1870:1:27;1863:9;1834:1057;;;-1:-1:-1;2908:6:27;;1294:1626;-1:-1:-1;;;;;;1294:1626:27:o;2925:446::-;2977:3;3015:5;3009:12;3042:6;3037:3;3030:19;3074:4;3069:3;3065:14;3058:21;;3113:4;3106:5;3102:16;3136:1;3146:200;3160:6;3157:1;3154:13;3146:200;;;3225:13;;-1:-1:-1;;;;;;3221:40:27;3209:53;;3291:4;3282:14;;;;3319:17;;;;3182:1;3175:9;3146:200;;;-1:-1:-1;3362:3:27;;2925:446;-1:-1:-1;;;;2925:446:27:o;3376:1143::-;3594:4;3642:2;3631:9;3627:18;3672:2;3661:9;3654:21;3695:6;3730;3724:13;3761:6;3753;3746:22;3799:2;3788:9;3784:18;3777:25;;3861:2;3851:6;3848:1;3844:14;3833:9;3829:30;3825:39;3811:53;;3899:2;3891:6;3887:15;3920:1;3930:560;3944:6;3941:1;3938:13;3930:560;;;4037:2;4033:7;4021:9;4013:6;4009:22;4005:36;4000:3;3993:49;4071:6;4065:13;4117:2;4111:9;4148:2;4140:6;4133:18;4178:48;4222:2;4214:6;4210:15;4196:12;4178:48;:::i;:::-;4164:62;;4275:2;4271;4267:11;4261:18;4239:40;;4328:6;4320;4316:19;4311:2;4303:6;4299:15;4292:44;4359:51;4403:6;4387:14;4359:51;:::i;:::-;4349:61;-1:-1:-1;;;4445:2:27;4468:12;;;;4433:15;;;;;3966:1;3959:9;3930:560;;4524:782;4686:4;4734:2;4723:9;4719:18;4764:2;4753:9;4746:21;4787:6;4822;4816:13;4853:6;4845;4838:22;4891:2;4880:9;4876:18;4869:25;;4953:2;4943:6;4940:1;4936:14;4925:9;4921:30;4917:39;4903:53;;4991:2;4983:6;4979:15;5012:1;5022:255;5036:6;5033:1;5030:13;5022:255;;;5129:2;5125:7;5113:9;5105:6;5101:22;5097:36;5092:3;5085:49;5157:40;5190:6;5181;5175:13;5157:40;:::i;:::-;5147:50;-1:-1:-1;5232:2:27;5255:12;;;;5220:15;;;;;5058:1;5051:9;5022:255;;5544:1031;5746:4;5794:2;5783:9;5779:18;5824:2;5813:9;5806:21;5847:6;5882;5876:13;5913:6;5905;5898:22;5951:2;5940:9;5936:18;5929:25;;6013:2;6003:6;6000:1;5996:14;5985:9;5981:30;5977:39;5963:53;;6051:2;6043:6;6039:15;6072:1;6082:464;6096:6;6093:1;6090:13;6082:464;;;6161:22;;;-1:-1:-1;;6157:36:27;6145:49;;6217:13;;6262:9;;-1:-1:-1;;;;;6258:35:27;6243:51;;6341:2;6333:11;;;6327:18;6382:2;6365:15;;;6358:27;;;6327:18;6408:58;;6450:15;;6327:18;6408:58;:::i;:::-;6398:68;-1:-1:-1;;6501:2:27;6524:12;;;;6489:15;;;;;6118:1;6111:9;6082:464;;6980:315;7075:6;7128:2;7116:9;7107:7;7103:23;7099:32;7096:52;;;7144:1;7141;7134:12;7096:52;7170:16;;-1:-1:-1;;;;;7215:31:27;;7205:42;;7195:70;;7261:1;7258;7251:12;7195:70;7284:5;6980:315;-1:-1:-1;;;6980:315:27:o;7300:380::-;7379:1;7375:12;;;;7422;;;7443:61;;7497:4;7489:6;7485:17;7475:27;;7443:61;7550:2;7542:6;7539:14;7519:18;7516:38;7513:161;;7596:10;7591:3;7587:20;7584:1;7577:31;7631:4;7628:1;7621:15;7659:4;7656:1;7649:15;7513:161;;7300:380;;;:::o;7685:303::-;7778:5;7801:1;7811:171;7825:4;7822:1;7819:11;7811:171;;;7884:13;;7872:26;;7927:4;7918:14;;;;7955:17;;;;7845:1;7838:9;7811:171;;7993:1184;8441:3;8426:19;;8454:43;8430:9;8479:6;8454:43;:::i;:::-;8532:2;8521:9;8517:18;8577:6;8601:1;8611:187;8625:4;8622:1;8619:11;8611:187;;;8672:44;8712:3;8703:6;8697:13;8672:44;:::i;:::-;8745:2;8736:12;;;;;8783:4;8771:17;;;;;8645:1;8638:9;8611:187;;;8615:3;;;8807:53;8855:3;8844:9;8840:19;8832:6;8807:53;:::i;:::-;8897:3;8886:9;8882:19;8949:6;8975:1;8985:186;9001:1;8996:3;8993:10;8985:186;;;9063:15;;9049:30;;9112:4;9101:16;;;;9142:19;;;;9022:1;9013:11;8985:186;;;8989:3;;;7993:1184;;;;;;;:::o;9182:277::-;9249:6;9302:2;9290:9;9281:7;9277:23;9273:32;9270:52;;;9318:1;9315;9308:12;9270:52;9350:9;9344:16;9403:5;9396:13;9389:21;9382:5;9379:32;9369:60;;9425:1;9422;9415:12;9743:184;9813:6;9866:2;9854:9;9845:7;9841:23;9837:32;9834:52;;;9882:1;9879;9872:12;9834:52;-1:-1:-1;9905:16:27;;9743:184;-1:-1:-1;9743:184:27:o;10211:382::-;10418:6;10411:14;10404:22;10393:9;10386:41;10477:6;10470:14;10463:22;10458:2;10447:9;10443:18;10436:50;10522:2;10517;10506:9;10502:18;10495:30;10367:4;10542:45;10583:2;10572:9;10568:18;10560:6;10542:45;:::i;:::-;10534:53;10211:382;-1:-1:-1;;;;;10211:382:27:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","deployG16Verify()":"85a944a5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","groth16Verifier()":"19c813be","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testVerifyProof()":"3bdf4025"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deployG16Verify\",\"outputs\":[{\"internalType\":\"contract DeployG16Verify\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"groth16Verifier\",\"outputs\":[{\"internalType\":\"contract Groth16Verifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testVerifyProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/TestGroth16Verifier.t.sol\":\"TestGroth16Verifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x7dd11ac4db798fa196e00a0cfa288ce984acac881f1f34de03fe3187deed58de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c15fb03d5545e2d8d3948661596410edec5ec278a73988914b14a05d0d54557\",\"dweb:/ipfs/QmWGjkLgp4wSrTrFxF8cmhghaXQp5VyXYQvWE1DUTPL4rG\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xc28b654cfbcafb8f7688c8dc69134921bb4841c82ddc2e5f27bcf5d8eb2177cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f1875b52fb32efefdc467d9566bf93d72dad036547ce6955e4f7a318eea9d6f\",\"dweb:/ipfs/QmbgbSX8JajLzTyWcPqrYAcsQcHNuGTFTKdQ3HNTvyRgdj\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974\",\"dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3\",\"dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51d822417db259b59eec2dfb7859285cef983a26b5d4fba20e1addabccc8734e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0e3b5abe0173ee6e479e4248eb4ee3a4374f7e08fb2848d93f5c2cf5e95214f1\",\"dweb:/ipfs/QmbUBD4NLFCuR6WHVx5unXH2uWHEhtADLcFrUwyev8iLrD\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab\",\"dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3\"]},\"script/DeployGroth16Verifier.s.sol\":{\"keccak256\":\"0x4ab15790ada2bcd9d072f09e418c69e2d3392db3f9f0a849870b2577d7531018\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b944dfe22168ef2f01aee169f91e09cd7a33e38c1af3778441181dab1f0f4c1f\",\"dweb:/ipfs/QmPnEcfLpSVEP33eRX7fPmw2unGRBLGRDWorw8qbKsPqzF\"]},\"src/hopital/Groth16Verifier.sol\":{\"keccak256\":\"0x470c24be9421a38786ec4ae94fa01fbabad9719eae3b41698b3743fab7eac414\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1337203bb576b2eed7fb2b7fa7437eb90f967b968a38ecd40bbb82462505a40a\",\"dweb:/ipfs/QmeK6RKPZE6uKygmYcVB2AkeMWQgzNoTH9TvzvSfZBhP9Z\"]},\"test/TestGroth16Verifier.t.sol\":{\"keccak256\":\"0xebcfc9688bfbc6fdfc0997c84f0608e049b8c0ed92bfec380aa7122b2072d0fe\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e5ee6aeceec64b9c9058db2e0601cde1fd84eb7b7ec1c809b07d539461ea5efa\",\"dweb:/ipfs/Qmcc3km9NpdVV89R6vFC7yh8NvjRasJNR5TmfgCSEifyWT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"deployG16Verify","outputs":[{"internalType":"contract DeployG16Verify","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"groth16Verifier","outputs":[{"internalType":"contract Groth16Verifier","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testVerifyProof"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/TestGroth16Verifier.t.sol":"TestGroth16Verifier"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x7dd11ac4db798fa196e00a0cfa288ce984acac881f1f34de03fe3187deed58de","urls":["bzz-raw://2c15fb03d5545e2d8d3948661596410edec5ec278a73988914b14a05d0d54557","dweb:/ipfs/QmWGjkLgp4wSrTrFxF8cmhghaXQp5VyXYQvWE1DUTPL4rG"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xc28b654cfbcafb8f7688c8dc69134921bb4841c82ddc2e5f27bcf5d8eb2177cf","urls":["bzz-raw://3f1875b52fb32efefdc467d9566bf93d72dad036547ce6955e4f7a318eea9d6f","dweb:/ipfs/QmbgbSX8JajLzTyWcPqrYAcsQcHNuGTFTKdQ3HNTvyRgdj"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500","urls":["bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974","dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861","urls":["bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3","dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51d822417db259b59eec2dfb7859285cef983a26b5d4fba20e1addabccc8734e","urls":["bzz-raw://0e3b5abe0173ee6e479e4248eb4ee3a4374f7e08fb2848d93f5c2cf5e95214f1","dweb:/ipfs/QmbUBD4NLFCuR6WHVx5unXH2uWHEhtADLcFrUwyev8iLrD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11","urls":["bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab","dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3"],"license":"MIT"},"script/DeployGroth16Verifier.s.sol":{"keccak256":"0x4ab15790ada2bcd9d072f09e418c69e2d3392db3f9f0a849870b2577d7531018","urls":["bzz-raw://b944dfe22168ef2f01aee169f91e09cd7a33e38c1af3778441181dab1f0f4c1f","dweb:/ipfs/QmPnEcfLpSVEP33eRX7fPmw2unGRBLGRDWorw8qbKsPqzF"],"license":"UNLICENSED"},"src/hopital/Groth16Verifier.sol":{"keccak256":"0x470c24be9421a38786ec4ae94fa01fbabad9719eae3b41698b3743fab7eac414","urls":["bzz-raw://1337203bb576b2eed7fb2b7fa7437eb90f967b968a38ecd40bbb82462505a40a","dweb:/ipfs/QmeK6RKPZE6uKygmYcVB2AkeMWQgzNoTH9TvzvSfZBhP9Z"],"license":"GPL-3.0"},"test/TestGroth16Verifier.t.sol":{"keccak256":"0xebcfc9688bfbc6fdfc0997c84f0608e049b8c0ed92bfec380aa7122b2072d0fe","urls":["bzz-raw://e5ee6aeceec64b9c9058db2e0601cde1fd84eb7b7ec1c809b07d539461ea5efa","dweb:/ipfs/Qmcc3km9NpdVV89R6vFC7yh8NvjRasJNR5TmfgCSEifyWT"],"license":"UNLICENSED"}},"version":1},"id":26} \ No newline at end of file diff --git a/out/build-info/16c8ebe7b2340df066b163e66207f551.json b/out/build-info/16c8ebe7b2340df066b163e66207f551.json deleted file mode 100644 index 678bff0..0000000 --- a/out/build-info/16c8ebe7b2340df066b163e66207f551.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"16c8ebe7b2340df066b163e66207f551","source_id_to_path":{"0":"src/hopital/G16Verify.sol","1":"src/hopital/Verifyer.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/out/build-info/2d8d82aa779b6cbf29ec6760bbea5ffe.json b/out/build-info/2d8d82aa779b6cbf29ec6760bbea5ffe.json new file mode 100644 index 0000000..4d9f9b3 --- /dev/null +++ b/out/build-info/2d8d82aa779b6cbf29ec6760bbea5ffe.json @@ -0,0 +1 @@ +{"id":"2d8d82aa779b6cbf29ec6760bbea5ffe","source_id_to_path":{"0":"lib/forge-std/src/Base.sol","1":"lib/forge-std/src/Script.sol","2":"lib/forge-std/src/StdAssertions.sol","3":"lib/forge-std/src/StdChains.sol","4":"lib/forge-std/src/StdCheats.sol","5":"lib/forge-std/src/StdError.sol","6":"lib/forge-std/src/StdInvariant.sol","7":"lib/forge-std/src/StdJson.sol","8":"lib/forge-std/src/StdMath.sol","9":"lib/forge-std/src/StdStorage.sol","10":"lib/forge-std/src/StdStyle.sol","11":"lib/forge-std/src/StdToml.sol","12":"lib/forge-std/src/StdUtils.sol","13":"lib/forge-std/src/Test.sol","14":"lib/forge-std/src/Vm.sol","15":"lib/forge-std/src/console.sol","16":"lib/forge-std/src/console2.sol","17":"lib/forge-std/src/interfaces/IERC165.sol","18":"lib/forge-std/src/interfaces/IERC20.sol","19":"lib/forge-std/src/interfaces/IERC721.sol","20":"lib/forge-std/src/interfaces/IMulticall3.sol","21":"lib/forge-std/src/mocks/MockERC20.sol","22":"lib/forge-std/src/mocks/MockERC721.sol","23":"lib/forge-std/src/safeconsole.sol","24":"script/DeployGroth16Verifier.s.sol","25":"src/hopital/Groth16Verifier.sol","26":"test/TestGroth16Verifier.t.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/out/build-info/69217db49eb01dfc444a428c6f98b1b7.json b/out/build-info/69217db49eb01dfc444a428c6f98b1b7.json new file mode 100644 index 0000000..fe2a693 --- /dev/null +++ b/out/build-info/69217db49eb01dfc444a428c6f98b1b7.json @@ -0,0 +1 @@ +{"id":"69217db49eb01dfc444a428c6f98b1b7","source_id_to_path":{"0":"lib/forge-std/src/Base.sol","1":"lib/forge-std/src/Script.sol","2":"lib/forge-std/src/StdChains.sol","3":"lib/forge-std/src/StdCheats.sol","4":"lib/forge-std/src/StdJson.sol","5":"lib/forge-std/src/StdMath.sol","6":"lib/forge-std/src/StdStorage.sol","7":"lib/forge-std/src/StdStyle.sol","8":"lib/forge-std/src/StdUtils.sol","9":"lib/forge-std/src/Vm.sol","10":"lib/forge-std/src/console.sol","11":"lib/forge-std/src/console2.sol","12":"lib/forge-std/src/interfaces/IERC165.sol","13":"lib/forge-std/src/interfaces/IERC20.sol","14":"lib/forge-std/src/interfaces/IERC721.sol","15":"lib/forge-std/src/interfaces/IMulticall3.sol","16":"lib/forge-std/src/mocks/MockERC20.sol","17":"lib/forge-std/src/mocks/MockERC721.sol","18":"lib/forge-std/src/safeconsole.sol","19":"script/DeployGroth16Verifier.s.sol","20":"src/hopital/Groth16Verifier.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/out/build-info/a9dfc5caaebeb5c961b515f47774f31e.json b/out/build-info/a9dfc5caaebeb5c961b515f47774f31e.json new file mode 100644 index 0000000..e9db0e0 --- /dev/null +++ b/out/build-info/a9dfc5caaebeb5c961b515f47774f31e.json @@ -0,0 +1 @@ +{"id":"a9dfc5caaebeb5c961b515f47774f31e","source_id_to_path":{"0":"lib/forge-std/src/Base.sol","1":"lib/forge-std/src/Script.sol","2":"lib/forge-std/src/StdAssertions.sol","3":"lib/forge-std/src/StdChains.sol","4":"lib/forge-std/src/StdCheats.sol","5":"lib/forge-std/src/StdError.sol","6":"lib/forge-std/src/StdInvariant.sol","7":"lib/forge-std/src/StdJson.sol","8":"lib/forge-std/src/StdMath.sol","9":"lib/forge-std/src/StdStorage.sol","10":"lib/forge-std/src/StdStyle.sol","11":"lib/forge-std/src/StdToml.sol","12":"lib/forge-std/src/StdUtils.sol","13":"lib/forge-std/src/Test.sol","14":"lib/forge-std/src/Vm.sol","15":"lib/forge-std/src/console.sol","16":"lib/forge-std/src/console2.sol","17":"lib/forge-std/src/interfaces/IERC165.sol","18":"lib/forge-std/src/interfaces/IERC20.sol","19":"lib/forge-std/src/interfaces/IERC721.sol","20":"lib/forge-std/src/interfaces/IMulticall3.sol","21":"lib/forge-std/src/mocks/MockERC20.sol","22":"lib/forge-std/src/mocks/MockERC721.sol","23":"lib/forge-std/src/safeconsole.sol","24":"script/DeployGroth16Verifier.s.sol","25":"src/hopital/Groth16Verifier.sol","26":"test/TestGroth16Verifier.t.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/script/DeployGroth16Verifier.s.sol b/script/DeployGroth16Verifier.s.sol new file mode 100644 index 0000000..b6007a3 --- /dev/null +++ b/script/DeployGroth16Verifier.s.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import {Script, console} from "forge-std/Script.sol"; +import {Groth16Verifier} from "../src/hopital/Groth16Verifier.sol"; + +contract DeployG16Verify is Script { + Groth16Verifier public groth16Verifier; + + + + function run() public returns(Groth16Verifier){ + vm.startBroadcast(); + + groth16Verifier = new Groth16Verifier(); + + vm.stopBroadcast(); + + return groth16Verifier; + } +} \ No newline at end of file diff --git a/src/hopital/G16Verify.sol b/src/hopital/Groth16Verifier.sol similarity index 100% rename from src/hopital/G16Verify.sol rename to src/hopital/Groth16Verifier.sol diff --git a/test/TestGroth16Verifier.t.sol b/test/TestGroth16Verifier.t.sol new file mode 100644 index 0000000..eb39c12 --- /dev/null +++ b/test/TestGroth16Verifier.t.sol @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import {Test, console} from "forge-std/Test.sol"; +import {DeployG16Verify} from "../script/DeployGroth16Verifier.s.sol"; +import {Groth16Verifier} from "../src/hopital/Groth16Verifier.sol"; + +contract TestGroth16Verifier is Test { + Groth16Verifier public groth16Verifier; + DeployG16Verify public deployG16Verify; + + uint256 constant AMOUNT_OF_OWNER = 10 ether; + address owner = makeAddr("owner"); + + function setUp() external { + // Fund the owner with Ether + deal(owner, AMOUNT_OF_OWNER); + // Deploy the Groth16Verifier contract using the deployment script + vm.startPrank(owner); + deployG16Verify = new DeployG16Verify(); + groth16Verifier = deployG16Verify.run(); + // groth16Verifier = deployG16Verify.groth16Verifier(); + vm.stopPrank(); +} + + + + + function testVerifyProof() external { + // Example inputs to the verifyProof function + uint256[2] memory pA = [uint256(1), uint256(2)]; + uint256[2][2] memory pB = [[uint256(1), uint256(2)], [uint256(3), uint256(4)]]; + uint256[2] memory pC = [uint256(5), uint256(6)]; + uint256[1] memory pubSignals = [uint256(7)]; + + // Call the verifyProof function + vm.startPrank(owner); + bool result = groth16Verifier.verifyProof(pA, pB, pC, pubSignals); + vm.stopPrank(); + + // Assert the result is as expected (this depends on your setup and valid proof) + assertEq(result, false, "verifyProof should return false for invalid proof"); + } +}