@tokamak-network/thanos-contracts
Version:
1 lines • 121 kB
JSON
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"202:8624:74:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:8624:74;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"202:8624:74:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":"Math"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Standard math utilities missing in the Solidity language."},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","id":55562,"exportedSymbols":{"Math":[55561]},"nodeType":"SourceUnit","src":"103:8724:74","nodes":[{"id":55059,"nodeType":"PragmaDirective","src":"103:23:74","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55561,"nodeType":"ContractDefinition","src":"202:8624:74","nodes":[{"id":55064,"nodeType":"EnumDefinition","src":"221:122:74","nodes":[],"canonicalName":"Math.Rounding","members":[{"id":55061,"name":"Down","nameLocation":"245:4:74","nodeType":"EnumValue","src":"245:4:74"},{"id":55062,"name":"Up","nameLocation":"287:2:74","nodeType":"EnumValue","src":"287:2:74"},{"id":55063,"name":"Zero","nameLocation":"318:4:74","nodeType":"EnumValue","src":"318:4:74"}],"name":"Rounding","nameLocation":"226:8:74"},{"id":55082,"nodeType":"FunctionDefinition","src":"413:105:74","nodes":[],"body":{"id":55081,"nodeType":"Block","src":"480:38:74","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55074,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55067,"src":"497:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":55075,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55069,"src":"502:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:6:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":55078,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55069,"src":"510:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:14:74","trueExpression":{"id":55077,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55067,"src":"506:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":55073,"id":55080,"nodeType":"Return","src":"490:21:74"}]},"documentation":{"id":55065,"nodeType":"StructuredDocumentation","src":"349:59:74","text":" @dev Returns the largest of two numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:74","parameters":{"id":55070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55067,"mutability":"mutable","name":"a","nameLocation":"434:1:74","nodeType":"VariableDeclaration","scope":55082,"src":"426:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55066,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55069,"mutability":"mutable","name":"b","nameLocation":"445:1:74","nodeType":"VariableDeclaration","scope":55082,"src":"437:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55068,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:74"},"returnParameters":{"id":55073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55082,"src":"471:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55071,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:74"},"scope":55561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":55100,"nodeType":"FunctionDefinition","src":"589:104:74","nodes":[],"body":{"id":55099,"nodeType":"Block","src":"656:37:74","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55092,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55085,"src":"673:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55093,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55087,"src":"677:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"673:5:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":55096,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55087,"src":"685:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"673:13:74","trueExpression":{"id":55095,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55085,"src":"681:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":55091,"id":55098,"nodeType":"Return","src":"666:20:74"}]},"documentation":{"id":55083,"nodeType":"StructuredDocumentation","src":"524:60:74","text":" @dev Returns the smallest of two numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"598:3:74","parameters":{"id":55088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55085,"mutability":"mutable","name":"a","nameLocation":"610:1:74","nodeType":"VariableDeclaration","scope":55100,"src":"602:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55084,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55087,"mutability":"mutable","name":"b","nameLocation":"621:1:74","nodeType":"VariableDeclaration","scope":55100,"src":"613:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55086,"name":"uint256","nodeType":"ElementaryTypeName","src":"613:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"601:22:74"},"returnParameters":{"id":55091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55100,"src":"647:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55089,"name":"uint256","nodeType":"ElementaryTypeName","src":"647:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"646:9:74"},"scope":55561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":55123,"nodeType":"FunctionDefinition","src":"806:153:74","nodes":[],"body":{"id":55122,"nodeType":"Block","src":"877:82:74","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55110,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55103,"src":"932:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":55111,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55105,"src":"936:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"932:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55113,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"931:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55114,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55103,"src":"942:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":55115,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55105,"src":"946:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"942:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55117,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"941:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":55118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:74","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"941:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":55109,"id":55121,"nodeType":"Return","src":"924:28:74"}]},"documentation":{"id":55101,"nodeType":"StructuredDocumentation","src":"699:102:74","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"815:7:74","parameters":{"id":55106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55103,"mutability":"mutable","name":"a","nameLocation":"831:1:74","nodeType":"VariableDeclaration","scope":55123,"src":"823:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55102,"name":"uint256","nodeType":"ElementaryTypeName","src":"823:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55105,"mutability":"mutable","name":"b","nameLocation":"842:1:74","nodeType":"VariableDeclaration","scope":55123,"src":"834:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55104,"name":"uint256","nodeType":"ElementaryTypeName","src":"834:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"822:22:74"},"returnParameters":{"id":55109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55123,"src":"868:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55107,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"867:9:74"},"scope":55561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":55148,"nodeType":"FunctionDefinition","src":"1158:194:74","nodes":[],"body":{"id":55147,"nodeType":"Block","src":"1229:123:74","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55133,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55126,"src":"1317:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1322:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1317:6:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55137,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55126,"src":"1331:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1335:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1331:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55140,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1330:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":55141,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55128,"src":"1340:1:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1330:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1344:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1317:28:74","trueExpression":{"hexValue":"30","id":55136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1326:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":55132,"id":55146,"nodeType":"Return","src":"1310:35:74"}]},"documentation":{"id":55124,"nodeType":"StructuredDocumentation","src":"965:188:74","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1167:7:74","parameters":{"id":55129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55126,"mutability":"mutable","name":"a","nameLocation":"1183:1:74","nodeType":"VariableDeclaration","scope":55148,"src":"1175:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55125,"name":"uint256","nodeType":"ElementaryTypeName","src":"1175:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55128,"mutability":"mutable","name":"b","nameLocation":"1194:1:74","nodeType":"VariableDeclaration","scope":55148,"src":"1186:9:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55127,"name":"uint256","nodeType":"ElementaryTypeName","src":"1186:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1174:22:74"},"returnParameters":{"id":55132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55131,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55148,"src":"1220:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55130,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1219:9:74"},"scope":55561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":55270,"nodeType":"FunctionDefinition","src":"1668:3925:74","nodes":[],"body":{"id":55269,"nodeType":"Block","src":"1796:3797:74","nodes":[],"statements":[{"id":55268,"nodeType":"UncheckedBlock","src":"1806:3781:74","statements":[{"assignments":[55161],"declarations":[{"constant":false,"id":55161,"mutability":"mutable","name":"prod0","nameLocation":"2135:5:74","nodeType":"VariableDeclaration","scope":55268,"src":"2127:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55160,"name":"uint256","nodeType":"ElementaryTypeName","src":"2127:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55162,"nodeType":"VariableDeclarationStatement","src":"2127:13:74"},{"assignments":[55164],"declarations":[{"constant":false,"id":55164,"mutability":"mutable","name":"prod1","nameLocation":"2207:5:74","nodeType":"VariableDeclaration","scope":55268,"src":"2199:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55163,"name":"uint256","nodeType":"ElementaryTypeName","src":"2199:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55165,"nodeType":"VariableDeclarationStatement","src":"2199:13:74"},{"AST":{"nodeType":"YulBlock","src":"2279:157:74","statements":[{"nodeType":"YulVariableDeclaration","src":"2297:30:74","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2314:1:74"},{"name":"y","nodeType":"YulIdentifier","src":"2317:1:74"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2324:1:74","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2320:3:74"},"nodeType":"YulFunctionCall","src":"2320:6:74"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"2307:6:74"},"nodeType":"YulFunctionCall","src":"2307:20:74"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"2301:2:74","type":""}]},{"nodeType":"YulAssignment","src":"2344:18:74","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2357:1:74"},{"name":"y","nodeType":"YulIdentifier","src":"2360:1:74"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2353:3:74"},"nodeType":"YulFunctionCall","src":"2353:9:74"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2344:5:74"}]},{"nodeType":"YulAssignment","src":"2379:43:74","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2396:2:74"},{"name":"prod0","nodeType":"YulIdentifier","src":"2400:5:74"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2392:3:74"},"nodeType":"YulFunctionCall","src":"2392:14:74"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2411:2:74"},{"name":"prod0","nodeType":"YulIdentifier","src":"2415:5:74"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2408:2:74"},"nodeType":"YulFunctionCall","src":"2408:13:74"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2388:3:74"},"nodeType":"YulFunctionCall","src":"2388:34:74"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"2379:5:74"}]}]},"evmVersion":"london","externalReferences":[{"declaration":55161,"isOffset":false,"isSlot":false,"src":"2344:5:74","valueSize":1},{"declaration":55161,"isOffset":false,"isSlot":false,"src":"2400:5:74","valueSize":1},{"declaration":55161,"isOffset":false,"isSlot":false,"src":"2415:5:74","valueSize":1},{"declaration":55164,"isOffset":false,"isSlot":false,"src":"2379:5:74","valueSize":1},{"declaration":55151,"isOffset":false,"isSlot":false,"src":"2314:1:74","valueSize":1},{"declaration":55151,"isOffset":false,"isSlot":false,"src":"2357:1:74","valueSize":1},{"declaration":55153,"isOffset":false,"isSlot":false,"src":"2317:1:74","valueSize":1},{"declaration":55153,"isOffset":false,"isSlot":false,"src":"2360:1:74","valueSize":1}],"id":55166,"nodeType":"InlineAssembly","src":"2270:166:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55167,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55164,"src":"2517:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2526:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2517:10:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55175,"nodeType":"IfStatement","src":"2513:75:74","trueBody":{"id":55174,"nodeType":"Block","src":"2529:59:74","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55170,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55161,"src":"2554:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":55171,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55155,"src":"2562:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2554:19:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":55159,"id":55173,"nodeType":"Return","src":"2547:26:74"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55177,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55155,"src":"2698:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":55178,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55164,"src":"2712:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2698:19:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":55176,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2690:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2690:28:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55181,"nodeType":"ExpressionStatement","src":"2690:28:74"},{"assignments":[55183],"declarations":[{"constant":false,"id":55183,"mutability":"mutable","name":"remainder","nameLocation":"2982:9:74","nodeType":"VariableDeclaration","scope":55268,"src":"2974:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55182,"name":"uint256","nodeType":"ElementaryTypeName","src":"2974:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55184,"nodeType":"VariableDeclarationStatement","src":"2974:17:74"},{"AST":{"nodeType":"YulBlock","src":"3014:291:74","statements":[{"nodeType":"YulAssignment","src":"3083:38:74","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3103:1:74"},{"name":"y","nodeType":"YulIdentifier","src":"3106:1:74"},{"name":"denominator","nodeType":"YulIdentifier","src":"3109:11:74"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"3096:6:74"},"nodeType":"YulFunctionCall","src":"3096:25:74"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"3083:9:74"}]},{"nodeType":"YulAssignment","src":"3203:41:74","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"3216:5:74"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"3226:9:74"},{"name":"prod0","nodeType":"YulIdentifier","src":"3237:5:74"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3223:2:74"},"nodeType":"YulFunctionCall","src":"3223:20:74"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3212:3:74"},"nodeType":"YulFunctionCall","src":"3212:32:74"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"3203:5:74"}]},{"nodeType":"YulAssignment","src":"3261:30:74","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3274:5:74"},{"name":"remainder","nodeType":"YulIdentifier","src":"3281:9:74"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3270:3:74"},"nodeType":"YulFunctionCall","src":"3270:21:74"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3261:5:74"}]}]},"evmVersion":"london","externalReferences":[{"declaration":55155,"isOffset":false,"isSlot":false,"src":"3109:11:74","valueSize":1},{"declaration":55161,"isOffset":false,"isSlot":false,"src":"3237:5:74","valueSize":1},{"declaration":55161,"isOffset":false,"isSlot":false,"src":"3261:5:74","valueSize":1},{"declaration":55161,"isOffset":false,"isSlot":false,"src":"3274:5:74","valueSize":1},{"declaration":55164,"isOffset":false,"isSlot":false,"src":"3203:5:74","valueSize":1},{"declaration":55164,"isOffset":false,"isSlot":false,"src":"3216:5:74","valueSize":1},{"declaration":55183,"isOffset":false,"isSlot":false,"src":"3083:9:74","valueSize":1},{"declaration":55183,"isOffset":false,"isSlot":false,"src":"3226:9:74","valueSize":1},{"declaration":55183,"isOffset":false,"isSlot":false,"src":"3281:9:74","valueSize":1},{"declaration":55151,"isOffset":false,"isSlot":false,"src":"3103:1:74","valueSize":1},{"declaration":55153,"isOffset":false,"isSlot":false,"src":"3106:1:74","valueSize":1}],"id":55185,"nodeType":"InlineAssembly","src":"3005:300:74"},{"assignments":[55187],"declarations":[{"constant":false,"id":55187,"mutability":"mutable","name":"twos","nameLocation":"3620:4:74","nodeType":"VariableDeclaration","scope":55268,"src":"3612:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55186,"name":"uint256","nodeType":"ElementaryTypeName","src":"3612:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55195,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55188,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55155,"src":"3627:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3642:12:74","subExpression":{"id":55189,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55155,"src":"3643:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3657:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3642:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55193,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3641:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3627:32:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3612:47:74"},{"AST":{"nodeType":"YulBlock","src":"3682:362:74","statements":[{"nodeType":"YulAssignment","src":"3747:37:74","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"3766:11:74"},{"name":"twos","nodeType":"YulIdentifier","src":"3779:4:74"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3762:3:74"},"nodeType":"YulFunctionCall","src":"3762:22:74"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"3747:11:74"}]},{"nodeType":"YulAssignment","src":"3851:25:74","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3864:5:74"},{"name":"twos","nodeType":"YulIdentifier","src":"3871:4:74"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3860:3:74"},"nodeType":"YulFunctionCall","src":"3860:16:74"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3851:5:74"}]},{"nodeType":"YulAssignment","src":"3991:39:74","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4011:1:74","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"4014:4:74"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4007:3:74"},"nodeType":"YulFunctionCall","src":"4007:12:74"},{"name":"twos","nodeType":"YulIdentifier","src":"4021:4:74"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4003:3:74"},"nodeType":"YulFunctionCall","src":"4003:23:74"},{"kind":"number","nodeType":"YulLiteral","src":"4028:1:74","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3999:3:74"},"nodeType":"YulFunctionCall","src":"3999:31:74"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"3991:4:74"}]}]},"evmVersion":"london","externalReferences":[{"declaration":55155,"isOffset":false,"isSlot":false,"src":"3747:11:74","valueSize":1},{"declaration":55155,"isOffset":false,"isSlot":false,"src":"3766:11:74","valueSize":1},{"declaration":55161,"isOffset":false,"isSlot":false,"src":"3851:5:74","valueSize":1},{"declaration":55161,"isOffset":false,"isSlot":false,"src":"3864:5:74","valueSize":1},{"declaration":55187,"isOffset":false,"isSlot":false,"src":"3779:4:74","valueSize":1},{"declaration":55187,"isOffset":false,"isSlot":false,"src":"3871:4:74","valueSize":1},{"declaration":55187,"isOffset":false,"isSlot":false,"src":"3991:4:74","valueSize":1},{"declaration":55187,"isOffset":false,"isSlot":false,"src":"4014:4:74","valueSize":1},{"declaration":55187,"isOffset":false,"isSlot":false,"src":"4021:4:74","valueSize":1}],"id":55196,"nodeType":"InlineAssembly","src":"3673:371:74"},{"expression":{"id":55201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55197,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55161,"src":"4110:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55198,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55164,"src":"4119:5:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":55199,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"4127:4:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4119:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4110:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55202,"nodeType":"ExpressionStatement","src":"4110:21:74"},{"assignments":[55204],"declarations":[{"constant":false,"id":55204,"mutability":"mutable","name":"inverse","nameLocation":"4457:7:74","nodeType":"VariableDeclaration","scope":55268,"src":"4449:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55203,"name":"uint256","nodeType":"ElementaryTypeName","src":"4449:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55211,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":55205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4468:1:74","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":55206,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55155,"src":"4472:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4468:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4467:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":55209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4487:1:74","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4467:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4449:39:74"},{"expression":{"id":55218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55212,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55204,"src":"4705:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":55213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4716:1:74","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55214,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55155,"src":"4720:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":55215,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55204,"src":"4734:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4720:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4716:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4705:36:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55219,"nodeType":"ExpressionStatement","src":"4705:36:74"},{"expression":{"id":55226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55220,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55204,"src":"4774:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":55221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4785:1:74","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55222,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55155,"src":"4789:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":55223,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55204,"src":"4803:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4789:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4785:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4774:36:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55227,"nodeType":"ExpressionStatement","src":"4774:36:74"},{"expression":{"id":55234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55228,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55204,"src":"4844:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":55229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4855:1:74","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55230,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55155,"src":"4859:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":55231,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55204,"src":"4873:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4859:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4855:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4844:36:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55235,"nodeType":"ExpressionStatement","src":"4844:36:74"},{"expression":{"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55236,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55204,"src":"4914:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":55237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4925:1:74","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55238,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55155,"src":"4929:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":55239,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55204,"src":"4943:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4929:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4925:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4914:36:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55243,"n