diff --git a/README.md b/README.md index 7b28dea..0cd4e6d 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,17 @@ Use this package to install the Tellor user contracts and test helper functions, and to integrate Tellor into your contracts. +## Contents + +- `contracts/interfaces/ITellorDataBridge.sol` - The TellorDataBridge interface +- `contracts/testing/DataBankPlayground.sol` - A testing contract for rapid prototyping with Tellor oracle data +- `contracts/interfaces/IDataBankPlayground.sol` - The DataBankPlayground interface +- `contracts/bridge/TellorDataBridge.sol` - The TellorDataBridge contract +- `src/helpers/evmHelpers.js` - Helper functions for testing + ## How to Use -Use this package with your own npm project. +Use this package with your own npm project. See the [SampleLayerUser repo](https://github.com/tellor-io/SampleLayerUser) for usage examples. ### Install diff --git a/artifacts/build-info/ebdb99267cd32cea6219218999245ca2.json b/artifacts/build-info/ebdb99267cd32cea6219218999245ca2.json new file mode 100644 index 0000000..8c65395 --- /dev/null +++ b/artifacts/build-info/ebdb99267cd32cea6219218999245ca2.json @@ -0,0 +1 @@ +{"id":"ebdb99267cd32cea6219218999245ca2","_format":"hh-sol-build-info-1","solcVersion":"0.8.19","solcLongVersion":"0.8.19+commit.7dd6d404","input":{"language":"Solidity","sources":{"contracts/interfaces/IDataBankPlayground.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.19;\n\n/**\n * @title IDataBankPlayground\n * @notice Interface for DataBankPlayground testing contract\n * @dev This interface is for testing purposes only. Not for production use.\n */\ninterface IDataBankPlayground {\n struct AggregateData {\n bytes value;\n uint256 power;\n uint256 aggregateTimestamp;\n uint256 attestationTimestamp;\n uint256 relayTimestamp;\n }\n\n /**\n * @dev updates oracle data with new value for playground testing\n * @param _queryId the query ID to update the oracle data for\n * @param _value the value to update the oracle data with\n */\n function updateOracleDataPlayground(bytes32 _queryId, bytes memory _value) external;\n\n /**\n * @dev returns the current aggregate data for a given query ID\n * @param _queryId the query ID to get the current aggregate data for\n * @return _aggregateData the current aggregate data\n */\n function getCurrentAggregateData(bytes32 _queryId) external view returns (AggregateData memory _aggregateData);\n\n /**\n * @dev returns the aggregate data for a given query ID and index\n * @param _queryId the query ID to get the aggregate data for\n * @param _index the index of the aggregate data to get\n * @return _aggregateData the aggregate data\n */\n function getAggregateByIndex(bytes32 _queryId, uint256 _index) external view returns (AggregateData memory _aggregateData);\n\n /**\n * @dev returns the total number of aggregate values\n * @param _queryId the query ID to get the aggregate value count for\n * @return number of aggregate values stored\n */\n function getAggregateValueCount(bytes32 _queryId) external view returns (uint256);\n}\n\n"},"contracts/interfaces/ITellorDataBridge.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nstruct OracleAttestationData {\n bytes32 queryId;\n ReportData report;\n uint256 attestationTimestamp; //timestamp of validatorSignatures on report\n}\n\nstruct ReportData {\n bytes value;\n uint256 timestamp; //timestamp of reporter signature aggregation\n uint256 aggregatePower;\n uint256 previousTimestamp;\n uint256 nextTimestamp;\n uint256 lastConsensusTimestamp;\n}\n\nstruct Signature {\n uint8 v;\n bytes32 r;\n bytes32 s;\n}\n\nstruct Validator {\n address addr;\n uint256 power;\n}\n\ninterface ITellorDataBridge {\n function guardian() external view returns (address);\n function powerThreshold() external view returns (uint256);\n function unbondingPeriod() external view returns (uint256);\n function validatorTimestamp() external view returns (uint256);\n function verifyOracleData(\n OracleAttestationData calldata _attestData,\n Validator[] calldata _currentValidatorSet,\n Signature[] calldata _sigs\n ) external view;\n}"},"contracts/testing/DataBankPlayground.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.19;\n\nimport \"../interfaces/ITellorDataBridge.sol\";\n\n/**\n * @author Tellor Inc.\n * @title DataBankPlayground\n * @notice Testing contract for rapid prototyping with Tellor oracle data\n * @dev This contract is used to store data for multiple data feeds. It has no data bridge validation,\n * and is used for testing simple tellor integrations. This contract skips data verification and is \n * NOT for production use. For production contracts, use TellorDataBridge verification.\n * See SampleLayerUser repo for usage examples: https://github.com/tellor-io/SampleLayerUser\n */\ncontract DataBankPlayground {\n // Storage\n mapping(bytes32 => AggregateData[]) public data; // queryId -> aggregate data array\n\n struct AggregateData {\n bytes value; // the value of the asset\n uint256 power; // the aggregate power of the reporters\n uint256 aggregateTimestamp; // the timestamp of the aggregate\n uint256 attestationTimestamp; // the timestamp of the attestation\n uint256 relayTimestamp; // the timestamp of the relay\n }\n\n // Events\n event OracleUpdated(bytes32 indexed queryId, OracleAttestationData attestData);\n\n // Functions\n /**\n * @dev updates oracle data with new attestation data after verification\n * @param _attestData the oracle attestation data to be stored\n * note: _currentValidatorSet array of current validators (unused for testing)\n * note: _sigs array of validator signatures (unused for testing)\n */\n function updateOracleData(\n OracleAttestationData calldata _attestData,\n Validator[] calldata /* _currentValidatorSet */,\n Signature[] calldata /* _sigs */\n ) public {\n // Skips verification for testing purposes\n // dataBridge.verifyOracleData(_attestData, _currentValidatorSet, _sigs);\n\n data[_attestData.queryId].push(AggregateData(\n _attestData.report.value, \n _attestData.report.aggregatePower, \n _attestData.report.timestamp,\n _attestData.attestationTimestamp, \n block.timestamp\n ));\n emit OracleUpdated(_attestData.queryId, _attestData);\n }\n\n /**\n * @dev updates oracle data with new attestation data for playground\n * without needing to format data structs\n * @param _queryId the query ID to update the oracle data for\n * @param _value the value to update the oracle data with\n */\n function updateOracleDataPlayground(bytes32 _queryId, bytes memory _value) external {\n // aggregate timestamp from tellor is in milliseconds\n uint256 _aggregateTimestamp = (block.timestamp - 1) * 1000;\n data[_queryId].push(AggregateData(_value, 0, _aggregateTimestamp, _aggregateTimestamp, block.timestamp));\n }\n\n // Getter functions\n /**\n * @dev returns the aggregate data for a given query ID and index\n * @param _queryId the query ID to get the aggregate data for\n * @param _index the index of the aggregate data to get\n * @return _aggregateData the aggregate data\n */\n function getAggregateByIndex(bytes32 _queryId, uint256 _index) external view returns (AggregateData memory _aggregateData) {\n return data[_queryId][_index];\n }\n\n /**\n * @dev returns the total number of aggregate values\n * @param _queryId the query ID to get the aggregate value count for\n * @return number of aggregate values stored\n */\n function getAggregateValueCount(bytes32 _queryId) external view returns (uint256) {\n return data[_queryId].length;\n }\n\n /**\n * @dev returns the current aggregate data for a given query ID\n * @param _queryId the query ID to get the current aggregate data for\n * @return _aggregateData the current aggregate data\n */\n function getCurrentAggregateData(bytes32 _queryId) external view returns (AggregateData memory _aggregateData) {\n return _getCurrentAggregateData(_queryId);\n }\n\n // Internal functions\n /**\n * @dev internal function to get the current aggregate data for a query ID\n * @param _queryId the query ID to get the current aggregate data for\n * @return _aggregateData the current aggregate data\n */\n function _getCurrentAggregateData(bytes32 _queryId) internal view returns (AggregateData memory _aggregateData) {\n if (data[_queryId].length == 0) {\n return (AggregateData(bytes(\"\"), 0, 0, 0, 0));\n }\n _aggregateData = data[_queryId][data[_queryId].length - 1];\n return _aggregateData;\n }\n}\n\n"}},"settings":{"optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"contracts/interfaces/IDataBankPlayground.sol":{"ast":{"absolutePath":"contracts/interfaces/IDataBankPlayground.sol","exportedSymbols":{"IDataBankPlayground":[50]},"id":51,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","0.8",".19"],"nodeType":"PragmaDirective","src":"32:23:0"},{"abstract":false,"baseContracts":[],"canonicalName":"IDataBankPlayground","contractDependencies":[],"contractKind":"interface","documentation":{"id":2,"nodeType":"StructuredDocumentation","src":"57:175:0","text":" @title IDataBankPlayground\n @notice Interface for DataBankPlayground testing contract\n @dev This interface is for testing purposes only. Not for production use."},"fullyImplemented":false,"id":50,"linearizedBaseContracts":[50],"name":"IDataBankPlayground","nameLocation":"243:19:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IDataBankPlayground.AggregateData","id":13,"members":[{"constant":false,"id":4,"mutability":"mutable","name":"value","nameLocation":"306:5:0","nodeType":"VariableDeclaration","scope":13,"src":"300:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3,"name":"bytes","nodeType":"ElementaryTypeName","src":"300:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6,"mutability":"mutable","name":"power","nameLocation":"329:5:0","nodeType":"VariableDeclaration","scope":13,"src":"321:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5,"name":"uint256","nodeType":"ElementaryTypeName","src":"321:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8,"mutability":"mutable","name":"aggregateTimestamp","nameLocation":"352:18:0","nodeType":"VariableDeclaration","scope":13,"src":"344:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7,"name":"uint256","nodeType":"ElementaryTypeName","src":"344:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10,"mutability":"mutable","name":"attestationTimestamp","nameLocation":"388:20:0","nodeType":"VariableDeclaration","scope":13,"src":"380:28:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9,"name":"uint256","nodeType":"ElementaryTypeName","src":"380:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12,"mutability":"mutable","name":"relayTimestamp","nameLocation":"426:14:0","nodeType":"VariableDeclaration","scope":13,"src":"418:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11,"name":"uint256","nodeType":"ElementaryTypeName","src":"418:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AggregateData","nameLocation":"276:13:0","nodeType":"StructDefinition","scope":50,"src":"269:178:0","visibility":"public"},{"documentation":{"id":14,"nodeType":"StructuredDocumentation","src":"453:209:0","text":" @dev updates oracle data with new value for playground testing\n @param _queryId the query ID to update the oracle data for\n @param _value the value to update the oracle data with"},"functionSelector":"f237640a","id":21,"implemented":false,"kind":"function","modifiers":[],"name":"updateOracleDataPlayground","nameLocation":"676:26:0","nodeType":"FunctionDefinition","parameters":{"id":19,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16,"mutability":"mutable","name":"_queryId","nameLocation":"711:8:0","nodeType":"VariableDeclaration","scope":21,"src":"703:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15,"name":"bytes32","nodeType":"ElementaryTypeName","src":"703:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18,"mutability":"mutable","name":"_value","nameLocation":"734:6:0","nodeType":"VariableDeclaration","scope":21,"src":"721:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17,"name":"bytes","nodeType":"ElementaryTypeName","src":"721:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"702:39:0"},"returnParameters":{"id":20,"nodeType":"ParameterList","parameters":[],"src":"750:0:0"},"scope":50,"src":"667:84:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":22,"nodeType":"StructuredDocumentation","src":"757:210:0","text":" @dev returns the current aggregate data for a given query ID\n @param _queryId the query ID to get the current aggregate data for\n @return _aggregateData the current aggregate data"},"functionSelector":"cb956711","id":30,"implemented":false,"kind":"function","modifiers":[],"name":"getCurrentAggregateData","nameLocation":"981:23:0","nodeType":"FunctionDefinition","parameters":{"id":25,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24,"mutability":"mutable","name":"_queryId","nameLocation":"1013:8:0","nodeType":"VariableDeclaration","scope":30,"src":"1005:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1005:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1004:18:0"},"returnParameters":{"id":29,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28,"mutability":"mutable","name":"_aggregateData","nameLocation":"1067:14:0","nodeType":"VariableDeclaration","scope":30,"src":"1046:35:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$13_memory_ptr","typeString":"struct IDataBankPlayground.AggregateData"},"typeName":{"id":27,"nodeType":"UserDefinedTypeName","pathNode":{"id":26,"name":"AggregateData","nameLocations":["1046:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":13,"src":"1046:13:0"},"referencedDeclaration":13,"src":"1046:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$13_storage_ptr","typeString":"struct IDataBankPlayground.AggregateData"}},"visibility":"internal"}],"src":"1045:37:0"},"scope":50,"src":"972:111:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":31,"nodeType":"StructuredDocumentation","src":"1089:256:0","text":" @dev returns the aggregate data for a given query ID and index\n @param _queryId the query ID to get the aggregate data for\n @param _index the index of the aggregate data to get\n @return _aggregateData the aggregate data"},"functionSelector":"717681c6","id":41,"implemented":false,"kind":"function","modifiers":[],"name":"getAggregateByIndex","nameLocation":"1359:19:0","nodeType":"FunctionDefinition","parameters":{"id":36,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33,"mutability":"mutable","name":"_queryId","nameLocation":"1387:8:0","nodeType":"VariableDeclaration","scope":41,"src":"1379:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1379:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35,"mutability":"mutable","name":"_index","nameLocation":"1405:6:0","nodeType":"VariableDeclaration","scope":41,"src":"1397:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34,"name":"uint256","nodeType":"ElementaryTypeName","src":"1397:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1378:34:0"},"returnParameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39,"mutability":"mutable","name":"_aggregateData","nameLocation":"1457:14:0","nodeType":"VariableDeclaration","scope":41,"src":"1436:35:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$13_memory_ptr","typeString":"struct IDataBankPlayground.AggregateData"},"typeName":{"id":38,"nodeType":"UserDefinedTypeName","pathNode":{"id":37,"name":"AggregateData","nameLocations":["1436:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":13,"src":"1436:13:0"},"referencedDeclaration":13,"src":"1436:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$13_storage_ptr","typeString":"struct IDataBankPlayground.AggregateData"}},"visibility":"internal"}],"src":"1435:37:0"},"scope":50,"src":"1350:123:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":42,"nodeType":"StructuredDocumentation","src":"1479:190:0","text":" @dev returns the total number of aggregate values\n @param _queryId the query ID to get the aggregate value count for\n @return number of aggregate values stored"},"functionSelector":"e3ac7e11","id":49,"implemented":false,"kind":"function","modifiers":[],"name":"getAggregateValueCount","nameLocation":"1683:22:0","nodeType":"FunctionDefinition","parameters":{"id":45,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44,"mutability":"mutable","name":"_queryId","nameLocation":"1714:8:0","nodeType":"VariableDeclaration","scope":49,"src":"1706:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1706:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1705:18:0"},"returnParameters":{"id":48,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49,"src":"1747:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46,"name":"uint256","nodeType":"ElementaryTypeName","src":"1747:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1746:9:0"},"scope":50,"src":"1674:82:0","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":51,"src":"233:1525:0","usedErrors":[]}],"src":"32:1728:0"},"id":0},"contracts/interfaces/ITellorDataBridge.sol":{"ast":{"absolutePath":"contracts/interfaces/ITellorDataBridge.sol","exportedSymbols":{"ITellorDataBridge":[120],"OracleAttestationData":[60],"ReportData":[73],"Signature":[80],"Validator":[85]},"id":121,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":52,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:1"},{"canonicalName":"OracleAttestationData","id":60,"members":[{"constant":false,"id":54,"mutability":"mutable","name":"queryId","nameLocation":"100:7:1","nodeType":"VariableDeclaration","scope":60,"src":"92:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53,"name":"bytes32","nodeType":"ElementaryTypeName","src":"92:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":57,"mutability":"mutable","name":"report","nameLocation":"124:6:1","nodeType":"VariableDeclaration","scope":60,"src":"113:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ReportData_$73_storage_ptr","typeString":"struct ReportData"},"typeName":{"id":56,"nodeType":"UserDefinedTypeName","pathNode":{"id":55,"name":"ReportData","nameLocations":["113:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":73,"src":"113:10:1"},"referencedDeclaration":73,"src":"113:10:1","typeDescriptions":{"typeIdentifier":"t_struct$_ReportData_$73_storage_ptr","typeString":"struct ReportData"}},"visibility":"internal"},{"constant":false,"id":59,"mutability":"mutable","name":"attestationTimestamp","nameLocation":"144:20:1","nodeType":"VariableDeclaration","scope":60,"src":"136:28:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58,"name":"uint256","nodeType":"ElementaryTypeName","src":"136:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"OracleAttestationData","nameLocation":"64:21:1","nodeType":"StructDefinition","scope":121,"src":"57:155:1","visibility":"public"},{"canonicalName":"ReportData","id":73,"members":[{"constant":false,"id":62,"mutability":"mutable","name":"value","nameLocation":"244:5:1","nodeType":"VariableDeclaration","scope":73,"src":"238:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":61,"name":"bytes","nodeType":"ElementaryTypeName","src":"238:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":64,"mutability":"mutable","name":"timestamp","nameLocation":"263:9:1","nodeType":"VariableDeclaration","scope":73,"src":"255:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":63,"name":"uint256","nodeType":"ElementaryTypeName","src":"255:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":66,"mutability":"mutable","name":"aggregatePower","nameLocation":"332:14:1","nodeType":"VariableDeclaration","scope":73,"src":"324:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65,"name":"uint256","nodeType":"ElementaryTypeName","src":"324:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":68,"mutability":"mutable","name":"previousTimestamp","nameLocation":"360:17:1","nodeType":"VariableDeclaration","scope":73,"src":"352:25:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67,"name":"uint256","nodeType":"ElementaryTypeName","src":"352:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":70,"mutability":"mutable","name":"nextTimestamp","nameLocation":"391:13:1","nodeType":"VariableDeclaration","scope":73,"src":"383:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69,"name":"uint256","nodeType":"ElementaryTypeName","src":"383:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72,"mutability":"mutable","name":"lastConsensusTimestamp","nameLocation":"418:22:1","nodeType":"VariableDeclaration","scope":73,"src":"410:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":71,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ReportData","nameLocation":"221:10:1","nodeType":"StructDefinition","scope":121,"src":"214:229:1","visibility":"public"},{"canonicalName":"Signature","id":80,"members":[{"constant":false,"id":75,"mutability":"mutable","name":"v","nameLocation":"474:1:1","nodeType":"VariableDeclaration","scope":80,"src":"468:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":74,"name":"uint8","nodeType":"ElementaryTypeName","src":"468:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":77,"mutability":"mutable","name":"r","nameLocation":"489:1:1","nodeType":"VariableDeclaration","scope":80,"src":"481:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76,"name":"bytes32","nodeType":"ElementaryTypeName","src":"481:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79,"mutability":"mutable","name":"s","nameLocation":"504:1:1","nodeType":"VariableDeclaration","scope":80,"src":"496:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78,"name":"bytes32","nodeType":"ElementaryTypeName","src":"496:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Signature","nameLocation":"452:9:1","nodeType":"StructDefinition","scope":121,"src":"445:63:1","visibility":"public"},{"canonicalName":"Validator","id":85,"members":[{"constant":false,"id":82,"mutability":"mutable","name":"addr","nameLocation":"541:4:1","nodeType":"VariableDeclaration","scope":85,"src":"533:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81,"name":"address","nodeType":"ElementaryTypeName","src":"533:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84,"mutability":"mutable","name":"power","nameLocation":"559:5:1","nodeType":"VariableDeclaration","scope":85,"src":"551:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83,"name":"uint256","nodeType":"ElementaryTypeName","src":"551:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Validator","nameLocation":"517:9:1","nodeType":"StructDefinition","scope":121,"src":"510:57:1","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"ITellorDataBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":120,"linearizedBaseContracts":[120],"name":"ITellorDataBridge","nameLocation":"579:17:1","nodeType":"ContractDefinition","nodes":[{"functionSelector":"452a9320","id":90,"implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"612:8:1","nodeType":"FunctionDefinition","parameters":{"id":86,"nodeType":"ParameterList","parameters":[],"src":"620:2:1"},"returnParameters":{"id":89,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90,"src":"646:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87,"name":"address","nodeType":"ElementaryTypeName","src":"646:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"645:9:1"},"scope":120,"src":"603:52:1","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ba95ec27","id":95,"implemented":false,"kind":"function","modifiers":[],"name":"powerThreshold","nameLocation":"669:14:1","nodeType":"FunctionDefinition","parameters":{"id":91,"nodeType":"ParameterList","parameters":[],"src":"683:2:1"},"returnParameters":{"id":94,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":95,"src":"709:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92,"name":"uint256","nodeType":"ElementaryTypeName","src":"709:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"708:9:1"},"scope":120,"src":"660:58:1","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6cf6d675","id":100,"implemented":false,"kind":"function","modifiers":[],"name":"unbondingPeriod","nameLocation":"732:15:1","nodeType":"FunctionDefinition","parameters":{"id":96,"nodeType":"ParameterList","parameters":[],"src":"747:2:1"},"returnParameters":{"id":99,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100,"src":"773:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97,"name":"uint256","nodeType":"ElementaryTypeName","src":"773:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"772:9:1"},"scope":120,"src":"723:59:1","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4f76f1ee","id":105,"implemented":false,"kind":"function","modifiers":[],"name":"validatorTimestamp","nameLocation":"796:18:1","nodeType":"FunctionDefinition","parameters":{"id":101,"nodeType":"ParameterList","parameters":[],"src":"814:2:1"},"returnParameters":{"id":104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":105,"src":"840:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102,"name":"uint256","nodeType":"ElementaryTypeName","src":"840:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"839:9:1"},"scope":120,"src":"787:62:1","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5e0d3b0f","id":119,"implemented":false,"kind":"function","modifiers":[],"name":"verifyOracleData","nameLocation":"863:16:1","nodeType":"FunctionDefinition","parameters":{"id":117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108,"mutability":"mutable","name":"_attestData","nameLocation":"920:11:1","nodeType":"VariableDeclaration","scope":119,"src":"889:42:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_calldata_ptr","typeString":"struct OracleAttestationData"},"typeName":{"id":107,"nodeType":"UserDefinedTypeName","pathNode":{"id":106,"name":"OracleAttestationData","nameLocations":["889:21:1"],"nodeType":"IdentifierPath","referencedDeclaration":60,"src":"889:21:1"},"referencedDeclaration":60,"src":"889:21:1","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_storage_ptr","typeString":"struct OracleAttestationData"}},"visibility":"internal"},{"constant":false,"id":112,"mutability":"mutable","name":"_currentValidatorSet","nameLocation":"962:20:1","nodeType":"VariableDeclaration","scope":119,"src":"941:41:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$85_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":110,"nodeType":"UserDefinedTypeName","pathNode":{"id":109,"name":"Validator","nameLocations":["941:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":85,"src":"941:9:1"},"referencedDeclaration":85,"src":"941:9:1","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$85_storage_ptr","typeString":"struct Validator"}},"id":111,"nodeType":"ArrayTypeName","src":"941:11:1","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$85_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":116,"mutability":"mutable","name":"_sigs","nameLocation":"1013:5:1","nodeType":"VariableDeclaration","scope":119,"src":"992:26:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Signature_$80_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Signature[]"},"typeName":{"baseType":{"id":114,"nodeType":"UserDefinedTypeName","pathNode":{"id":113,"name":"Signature","nameLocations":["992:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":80,"src":"992:9:1"},"referencedDeclaration":80,"src":"992:9:1","typeDescriptions":{"typeIdentifier":"t_struct$_Signature_$80_storage_ptr","typeString":"struct Signature"}},"id":115,"nodeType":"ArrayTypeName","src":"992:11:1","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Signature_$80_storage_$dyn_storage_ptr","typeString":"struct Signature[]"}},"visibility":"internal"}],"src":"879:145:1"},"returnParameters":{"id":118,"nodeType":"ParameterList","parameters":[],"src":"1038:0:1"},"scope":120,"src":"854:185:1","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":121,"src":"569:472:1","usedErrors":[]}],"src":"32:1009:1"},"id":1},"contracts/testing/DataBankPlayground.sol":{"ast":{"absolutePath":"contracts/testing/DataBankPlayground.sol","exportedSymbols":{"DataBankPlayground":[317],"ITellorDataBridge":[120],"OracleAttestationData":[60],"ReportData":[73],"Signature":[80],"Validator":[85]},"id":318,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":122,"literals":["solidity","0.8",".19"],"nodeType":"PragmaDirective","src":"32:23:2"},{"absolutePath":"contracts/interfaces/ITellorDataBridge.sol","file":"../interfaces/ITellorDataBridge.sol","id":123,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":318,"sourceUnit":121,"src":"57:45:2","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"DataBankPlayground","contractDependencies":[],"contractKind":"contract","documentation":{"id":124,"nodeType":"StructuredDocumentation","src":"104:533:2","text":" @author Tellor Inc.\n @title DataBankPlayground\n @notice Testing contract for rapid prototyping with Tellor oracle data\n @dev This contract is used to store data for multiple data feeds. It has no data bridge validation,\n and is used for testing simple tellor integrations. This contract skips data verification and is \n NOT for production use. For production contracts, use TellorDataBridge verification.\n See SampleLayerUser repo for usage examples: https://github.com/tellor-io/SampleLayerUser"},"fullyImplemented":true,"id":317,"linearizedBaseContracts":[317],"name":"DataBankPlayground","nameLocation":"647:18:2","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"8d12c426","id":130,"mutability":"mutable","name":"data","nameLocation":"730:4:2","nodeType":"VariableDeclaration","scope":317,"src":"687:47:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct DataBankPlayground.AggregateData[])"},"typeName":{"id":129,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"695:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"687:35:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct DataBankPlayground.AggregateData[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":127,"nodeType":"UserDefinedTypeName","pathNode":{"id":126,"name":"AggregateData","nameLocations":["706:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":141,"src":"706:13:2"},"referencedDeclaration":141,"src":"706:13:2","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_storage_ptr","typeString":"struct DataBankPlayground.AggregateData"}},"id":128,"nodeType":"ArrayTypeName","src":"706:15:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_ptr","typeString":"struct DataBankPlayground.AggregateData[]"}}},"visibility":"public"},{"canonicalName":"DataBankPlayground.AggregateData","id":141,"members":[{"constant":false,"id":132,"mutability":"mutable","name":"value","nameLocation":"813:5:2","nodeType":"VariableDeclaration","scope":141,"src":"807:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":131,"name":"bytes","nodeType":"ElementaryTypeName","src":"807:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":134,"mutability":"mutable","name":"power","nameLocation":"862:5:2","nodeType":"VariableDeclaration","scope":141,"src":"854:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133,"name":"uint256","nodeType":"ElementaryTypeName","src":"854:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":136,"mutability":"mutable","name":"aggregateTimestamp","nameLocation":"925:18:2","nodeType":"VariableDeclaration","scope":141,"src":"917:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":135,"name":"uint256","nodeType":"ElementaryTypeName","src":"917:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":138,"mutability":"mutable","name":"attestationTimestamp","nameLocation":"995:20:2","nodeType":"VariableDeclaration","scope":141,"src":"987:28:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":137,"name":"uint256","nodeType":"ElementaryTypeName","src":"987:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":140,"mutability":"mutable","name":"relayTimestamp","nameLocation":"1069:14:2","nodeType":"VariableDeclaration","scope":141,"src":"1061:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":139,"name":"uint256","nodeType":"ElementaryTypeName","src":"1061:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AggregateData","nameLocation":"783:13:2","nodeType":"StructDefinition","scope":317,"src":"776:344:2","visibility":"public"},{"anonymous":false,"eventSelector":"32569c122e0d7a43079203df1373675696c8ccd8ca67de60dc2238b6bb226214","id":148,"name":"OracleUpdated","nameLocation":"1146:13:2","nodeType":"EventDefinition","parameters":{"id":147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":143,"indexed":true,"mutability":"mutable","name":"queryId","nameLocation":"1176:7:2","nodeType":"VariableDeclaration","scope":148,"src":"1160:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1160:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":146,"indexed":false,"mutability":"mutable","name":"attestData","nameLocation":"1207:10:2","nodeType":"VariableDeclaration","scope":148,"src":"1185:32:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_memory_ptr","typeString":"struct OracleAttestationData"},"typeName":{"id":145,"nodeType":"UserDefinedTypeName","pathNode":{"id":144,"name":"OracleAttestationData","nameLocations":["1185:21:2"],"nodeType":"IdentifierPath","referencedDeclaration":60,"src":"1185:21:2"},"referencedDeclaration":60,"src":"1185:21:2","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_storage_ptr","typeString":"struct OracleAttestationData"}},"visibility":"internal"}],"src":"1159:59:2"},"src":"1140:79:2"},{"body":{"id":191,"nodeType":"Block","src":"1745:473:2","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":169,"name":"_attestData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"1947:11:2","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_calldata_ptr","typeString":"struct OracleAttestationData calldata"}},"id":170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1959:6:2","memberName":"report","nodeType":"MemberAccess","referencedDeclaration":57,"src":"1947:18:2","typeDescriptions":{"typeIdentifier":"t_struct$_ReportData_$73_calldata_ptr","typeString":"struct ReportData calldata"}},"id":171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1966:5:2","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":62,"src":"1947:24:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":172,"name":"_attestData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"1986:11:2","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_calldata_ptr","typeString":"struct OracleAttestationData calldata"}},"id":173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1998:6:2","memberName":"report","nodeType":"MemberAccess","referencedDeclaration":57,"src":"1986:18:2","typeDescriptions":{"typeIdentifier":"t_struct$_ReportData_$73_calldata_ptr","typeString":"struct ReportData calldata"}},"id":174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2005:14:2","memberName":"aggregatePower","nodeType":"MemberAccess","referencedDeclaration":66,"src":"1986:33:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":175,"name":"_attestData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"2034:11:2","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_calldata_ptr","typeString":"struct OracleAttestationData calldata"}},"id":176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2046:6:2","memberName":"report","nodeType":"MemberAccess","referencedDeclaration":57,"src":"2034:18:2","typeDescriptions":{"typeIdentifier":"t_struct$_ReportData_$73_calldata_ptr","typeString":"struct ReportData calldata"}},"id":177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2053:9:2","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":64,"src":"2034:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":178,"name":"_attestData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"2076:11:2","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_calldata_ptr","typeString":"struct OracleAttestationData calldata"}},"id":179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2088:20:2","memberName":"attestationTimestamp","nodeType":"MemberAccess","referencedDeclaration":59,"src":"2076:32:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":180,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2123:5:2","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2129:9:2","memberName":"timestamp","nodeType":"MemberAccess","src":"2123:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":168,"name":"AggregateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"1920:13:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AggregateData_$141_storage_ptr_$","typeString":"type(struct DataBankPlayground.AggregateData storage pointer)"}},"id":182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1920:228:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData memory"}],"expression":{"baseExpression":{"id":163,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"1889:4:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct DataBankPlayground.AggregateData storage ref[] storage ref)"}},"id":166,"indexExpression":{"expression":{"id":164,"name":"_attestData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"1894:11:2","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_calldata_ptr","typeString":"struct OracleAttestationData calldata"}},"id":165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1906:7:2","memberName":"queryId","nodeType":"MemberAccess","referencedDeclaration":54,"src":"1894:19:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1889:25:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage","typeString":"struct DataBankPlayground.AggregateData storage ref[] storage ref"}},"id":167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1915:4:2","memberName":"push","nodeType":"MemberAccess","src":"1889:30:2","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_ptr_$_t_struct$_AggregateData_$141_storage_$returns$__$attached_to$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_ptr_$","typeString":"function (struct DataBankPlayground.AggregateData storage ref[] storage pointer,struct DataBankPlayground.AggregateData storage ref)"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1889:260:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":184,"nodeType":"ExpressionStatement","src":"1889:260:2"},{"eventCall":{"arguments":[{"expression":{"id":186,"name":"_attestData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"2178:11:2","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_calldata_ptr","typeString":"struct OracleAttestationData calldata"}},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2190:7:2","memberName":"queryId","nodeType":"MemberAccess","referencedDeclaration":54,"src":"2178:19:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":188,"name":"_attestData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"2199:11:2","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_calldata_ptr","typeString":"struct OracleAttestationData calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_OracleAttestationData_$60_calldata_ptr","typeString":"struct OracleAttestationData calldata"}],"id":185,"name":"OracleUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":148,"src":"2164:13:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_struct$_OracleAttestationData_$60_memory_ptr_$returns$__$","typeString":"function (bytes32,struct OracleAttestationData memory)"}},"id":189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2164:47:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":190,"nodeType":"EmitStatement","src":"2159:52:2"}]},"documentation":{"id":149,"nodeType":"StructuredDocumentation","src":"1242:308:2","text":" @dev updates oracle data with new attestation data after verification\n @param _attestData the oracle attestation data to be stored\n note: _currentValidatorSet array of current validators (unused for testing)\n note: _sigs array of validator signatures (unused for testing)"},"functionSelector":"61808010","id":192,"implemented":true,"kind":"function","modifiers":[],"name":"updateOracleData","nameLocation":"1564:16:2","nodeType":"FunctionDefinition","parameters":{"id":161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":152,"mutability":"mutable","name":"_attestData","nameLocation":"1621:11:2","nodeType":"VariableDeclaration","scope":192,"src":"1590:42:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_calldata_ptr","typeString":"struct OracleAttestationData"},"typeName":{"id":151,"nodeType":"UserDefinedTypeName","pathNode":{"id":150,"name":"OracleAttestationData","nameLocations":["1590:21:2"],"nodeType":"IdentifierPath","referencedDeclaration":60,"src":"1590:21:2"},"referencedDeclaration":60,"src":"1590:21:2","typeDescriptions":{"typeIdentifier":"t_struct$_OracleAttestationData_$60_storage_ptr","typeString":"struct OracleAttestationData"}},"visibility":"internal"},{"constant":false,"id":156,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":192,"src":"1642:20:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$85_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":154,"nodeType":"UserDefinedTypeName","pathNode":{"id":153,"name":"Validator","nameLocations":["1642:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":85,"src":"1642:9:2"},"referencedDeclaration":85,"src":"1642:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$85_storage_ptr","typeString":"struct Validator"}},"id":155,"nodeType":"ArrayTypeName","src":"1642:11:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$85_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":192,"src":"1699:20:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Signature_$80_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Signature[]"},"typeName":{"baseType":{"id":158,"nodeType":"UserDefinedTypeName","pathNode":{"id":157,"name":"Signature","nameLocations":["1699:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":80,"src":"1699:9:2"},"referencedDeclaration":80,"src":"1699:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_Signature_$80_storage_ptr","typeString":"struct Signature"}},"id":159,"nodeType":"ArrayTypeName","src":"1699:11:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Signature_$80_storage_$dyn_storage_ptr","typeString":"struct Signature[]"}},"visibility":"internal"}],"src":"1580:157:2"},"returnParameters":{"id":162,"nodeType":"ParameterList","parameters":[],"src":"1745:0:2"},"scope":317,"src":"1555:663:2","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":224,"nodeType":"Block","src":"2571:251:2","statements":[{"assignments":[201],"declarations":[{"constant":false,"id":201,"mutability":"mutable","name":"_aggregateTimestamp","nameLocation":"2651:19:2","nodeType":"VariableDeclaration","scope":224,"src":"2643:27:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":200,"name":"uint256","nodeType":"ElementaryTypeName","src":"2643:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":209,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":202,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2674:5:2","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2680:9:2","memberName":"timestamp","nodeType":"MemberAccess","src":"2674:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2692:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2674:19:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":206,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2673:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31303030","id":207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2697:4:2","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"2673:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2643:58:2"},{"expression":{"arguments":[{"arguments":[{"id":215,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"2745:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2753:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":217,"name":"_aggregateTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":201,"src":"2756:19:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":218,"name":"_aggregateTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":201,"src":"2777:19:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":219,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2798:5:2","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2804:9:2","memberName":"timestamp","nodeType":"MemberAccess","src":"2798:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":214,"name":"AggregateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"2731:13:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AggregateData_$141_storage_ptr_$","typeString":"type(struct DataBankPlayground.AggregateData storage pointer)"}},"id":221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2731:83:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData memory"}],"expression":{"baseExpression":{"id":210,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"2711:4:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct DataBankPlayground.AggregateData storage ref[] storage ref)"}},"id":212,"indexExpression":{"id":211,"name":"_queryId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":195,"src":"2716:8:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2711:14:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage","typeString":"struct DataBankPlayground.AggregateData storage ref[] storage ref"}},"id":213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2726:4:2","memberName":"push","nodeType":"MemberAccess","src":"2711:19:2","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_ptr_$_t_struct$_AggregateData_$141_storage_$returns$__$attached_to$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_ptr_$","typeString":"function (struct DataBankPlayground.AggregateData storage ref[] storage pointer,struct DataBankPlayground.AggregateData storage ref)"}},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2711:104:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":223,"nodeType":"ExpressionStatement","src":"2711:104:2"}]},"documentation":{"id":193,"nodeType":"StructuredDocumentation","src":"2224:258:2","text":" @dev updates oracle data with new attestation data for playground\n without needing to format data structs\n @param _queryId the query ID to update the oracle data for\n @param _value the value to update the oracle data with"},"functionSelector":"f237640a","id":225,"implemented":true,"kind":"function","modifiers":[],"name":"updateOracleDataPlayground","nameLocation":"2496:26:2","nodeType":"FunctionDefinition","parameters":{"id":198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":195,"mutability":"mutable","name":"_queryId","nameLocation":"2531:8:2","nodeType":"VariableDeclaration","scope":225,"src":"2523:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2523:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":197,"mutability":"mutable","name":"_value","nameLocation":"2554:6:2","nodeType":"VariableDeclaration","scope":225,"src":"2541:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":196,"name":"bytes","nodeType":"ElementaryTypeName","src":"2541:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2522:39:2"},"returnParameters":{"id":199,"nodeType":"ParameterList","parameters":[],"src":"2571:0:2"},"scope":317,"src":"2487:335:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":242,"nodeType":"Block","src":"3236:46:2","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":236,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"3253:4:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct DataBankPlayground.AggregateData storage ref[] storage ref)"}},"id":238,"indexExpression":{"id":237,"name":"_queryId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"3258:8:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3253:14:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage","typeString":"struct DataBankPlayground.AggregateData storage ref[] storage ref"}},"id":240,"indexExpression":{"id":239,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":230,"src":"3268:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3253:22:2","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_storage","typeString":"struct DataBankPlayground.AggregateData storage ref"}},"functionReturnParameters":235,"id":241,"nodeType":"Return","src":"3246:29:2"}]},"documentation":{"id":226,"nodeType":"StructuredDocumentation","src":"2852:256:2","text":" @dev returns the aggregate data for a given query ID and index\n @param _queryId the query ID to get the aggregate data for\n @param _index the index of the aggregate data to get\n @return _aggregateData the aggregate data"},"functionSelector":"717681c6","id":243,"implemented":true,"kind":"function","modifiers":[],"name":"getAggregateByIndex","nameLocation":"3122:19:2","nodeType":"FunctionDefinition","parameters":{"id":231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":228,"mutability":"mutable","name":"_queryId","nameLocation":"3150:8:2","nodeType":"VariableDeclaration","scope":243,"src":"3142:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3142:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":230,"mutability":"mutable","name":"_index","nameLocation":"3168:6:2","nodeType":"VariableDeclaration","scope":243,"src":"3160:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":229,"name":"uint256","nodeType":"ElementaryTypeName","src":"3160:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3141:34:2"},"returnParameters":{"id":235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":234,"mutability":"mutable","name":"_aggregateData","nameLocation":"3220:14:2","nodeType":"VariableDeclaration","scope":243,"src":"3199:35:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData"},"typeName":{"id":233,"nodeType":"UserDefinedTypeName","pathNode":{"id":232,"name":"AggregateData","nameLocations":["3199:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":141,"src":"3199:13:2"},"referencedDeclaration":141,"src":"3199:13:2","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_storage_ptr","typeString":"struct DataBankPlayground.AggregateData"}},"visibility":"internal"}],"src":"3198:37:2"},"scope":317,"src":"3113:169:2","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":256,"nodeType":"Block","src":"3565:45:2","statements":[{"expression":{"expression":{"baseExpression":{"id":251,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"3582:4:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct DataBankPlayground.AggregateData storage ref[] storage ref)"}},"id":253,"indexExpression":{"id":252,"name":"_queryId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"3587:8:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3582:14:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage","typeString":"struct DataBankPlayground.AggregateData storage ref[] storage ref"}},"id":254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3597:6:2","memberName":"length","nodeType":"MemberAccess","src":"3582:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":250,"id":255,"nodeType":"Return","src":"3575:28:2"}]},"documentation":{"id":244,"nodeType":"StructuredDocumentation","src":"3288:190:2","text":" @dev returns the total number of aggregate values\n @param _queryId the query ID to get the aggregate value count for\n @return number of aggregate values stored"},"functionSelector":"e3ac7e11","id":257,"implemented":true,"kind":"function","modifiers":[],"name":"getAggregateValueCount","nameLocation":"3492:22:2","nodeType":"FunctionDefinition","parameters":{"id":247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":246,"mutability":"mutable","name":"_queryId","nameLocation":"3523:8:2","nodeType":"VariableDeclaration","scope":257,"src":"3515:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3515:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3514:18:2"},"returnParameters":{"id":250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":257,"src":"3556:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":248,"name":"uint256","nodeType":"ElementaryTypeName","src":"3556:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3555:9:2"},"scope":317,"src":"3483:127:2","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":270,"nodeType":"Block","src":"3942:58:2","statements":[{"expression":{"arguments":[{"id":267,"name":"_queryId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"3984:8:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":266,"name":"_getCurrentAggregateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"3959:24:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_AggregateData_$141_memory_ptr_$","typeString":"function (bytes32) view returns (struct DataBankPlayground.AggregateData memory)"}},"id":268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3959:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData memory"}},"functionReturnParameters":265,"id":269,"nodeType":"Return","src":"3952:41:2"}]},"documentation":{"id":258,"nodeType":"StructuredDocumentation","src":"3616:210:2","text":" @dev returns the current aggregate data for a given query ID\n @param _queryId the query ID to get the current aggregate data for\n @return _aggregateData the current aggregate data"},"functionSelector":"cb956711","id":271,"implemented":true,"kind":"function","modifiers":[],"name":"getCurrentAggregateData","nameLocation":"3840:23:2","nodeType":"FunctionDefinition","parameters":{"id":261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":260,"mutability":"mutable","name":"_queryId","nameLocation":"3872:8:2","nodeType":"VariableDeclaration","scope":271,"src":"3864:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3864:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3863:18:2"},"returnParameters":{"id":265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":264,"mutability":"mutable","name":"_aggregateData","nameLocation":"3926:14:2","nodeType":"VariableDeclaration","scope":271,"src":"3905:35:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData"},"typeName":{"id":263,"nodeType":"UserDefinedTypeName","pathNode":{"id":262,"name":"AggregateData","nameLocations":["3905:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":141,"src":"3905:13:2"},"referencedDeclaration":141,"src":"3905:13:2","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_storage_ptr","typeString":"struct DataBankPlayground.AggregateData"}},"visibility":"internal"}],"src":"3904:37:2"},"scope":317,"src":"3831:169:2","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":315,"nodeType":"Block","src":"4370:217:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":280,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"4384:4:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct DataBankPlayground.AggregateData storage ref[] storage ref)"}},"id":282,"indexExpression":{"id":281,"name":"_queryId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"4389:8:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4384:14:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage","typeString":"struct DataBankPlayground.AggregateData storage ref[] storage ref"}},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4399:6:2","memberName":"length","nodeType":"MemberAccess","src":"4384:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4409:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4384:26:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":299,"nodeType":"IfStatement","src":"4380:102:2","trueBody":{"id":298,"nodeType":"Block","src":"4412:70:2","statements":[{"expression":{"components":[{"arguments":[{"arguments":[{"hexValue":"","id":289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4454:2:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4448:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":287,"name":"bytes","nodeType":"ElementaryTypeName","src":"4448:5:2","typeDescriptions":{}}},"id":290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4448:9:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4459:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4462:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4465:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4468:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":286,"name":"AggregateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"4434:13:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AggregateData_$141_storage_ptr_$","typeString":"type(struct DataBankPlayground.AggregateData storage pointer)"}},"id":295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4434:36:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData memory"}}],"id":296,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4433:38:2","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData memory"}},"functionReturnParameters":279,"id":297,"nodeType":"Return","src":"4426:45:2"}]}},{"expression":{"id":311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":300,"name":"_aggregateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":278,"src":"4491:14:2","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":301,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"4508:4:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct DataBankPlayground.AggregateData storage ref[] storage ref)"}},"id":303,"indexExpression":{"id":302,"name":"_queryId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"4513:8:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:14:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage","typeString":"struct DataBankPlayground.AggregateData storage ref[] storage ref"}},"id":310,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":304,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"4523:4:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct DataBankPlayground.AggregateData storage ref[] storage ref)"}},"id":306,"indexExpression":{"id":305,"name":"_queryId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"4528:8:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4523:14:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregateData_$141_storage_$dyn_storage","typeString":"struct DataBankPlayground.AggregateData storage ref[] storage ref"}},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4538:6:2","memberName":"length","nodeType":"MemberAccess","src":"4523:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4547:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4523:25:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:41:2","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_storage","typeString":"struct DataBankPlayground.AggregateData storage ref"}},"src":"4491:58:2","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData memory"}},"id":312,"nodeType":"ExpressionStatement","src":"4491:58:2"},{"expression":{"id":313,"name":"_aggregateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":278,"src":"4566:14:2","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData memory"}},"functionReturnParameters":279,"id":314,"nodeType":"Return","src":"4559:21:2"}]},"documentation":{"id":272,"nodeType":"StructuredDocumentation","src":"4032:221:2","text":" @dev internal function to get the current aggregate data for a query ID\n @param _queryId the query ID to get the current aggregate data for\n @return _aggregateData the current aggregate data"},"id":316,"implemented":true,"kind":"function","modifiers":[],"name":"_getCurrentAggregateData","nameLocation":"4267:24:2","nodeType":"FunctionDefinition","parameters":{"id":275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":274,"mutability":"mutable","name":"_queryId","nameLocation":"4300:8:2","nodeType":"VariableDeclaration","scope":316,"src":"4292:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4292:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4291:18:2"},"returnParameters":{"id":279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":278,"mutability":"mutable","name":"_aggregateData","nameLocation":"4354:14:2","nodeType":"VariableDeclaration","scope":316,"src":"4333:35:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_memory_ptr","typeString":"struct DataBankPlayground.AggregateData"},"typeName":{"id":277,"nodeType":"UserDefinedTypeName","pathNode":{"id":276,"name":"AggregateData","nameLocations":["4333:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":141,"src":"4333:13:2"},"referencedDeclaration":141,"src":"4333:13:2","typeDescriptions":{"typeIdentifier":"t_struct$_AggregateData_$141_storage_ptr","typeString":"struct DataBankPlayground.AggregateData"}},"visibility":"internal"}],"src":"4332:37:2"},"scope":317,"src":"4258:329:2","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":318,"src":"638:3951:2","usedErrors":[]}],"src":"32:4559:2"},"id":2}},"contracts":{"contracts/interfaces/IDataBankPlayground.sol":{"IDataBankPlayground":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getAggregateByIndex","outputs":[{"components":[{"internalType":"bytes","name":"value","type":"bytes"},{"internalType":"uint256","name":"power","type":"uint256"},{"internalType":"uint256","name":"aggregateTimestamp","type":"uint256"},{"internalType":"uint256","name":"attestationTimestamp","type":"uint256"},{"internalType":"uint256","name":"relayTimestamp","type":"uint256"}],"internalType":"struct IDataBankPlayground.AggregateData","name":"_aggregateData","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"}],"name":"getAggregateValueCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"}],"name":"getCurrentAggregateData","outputs":[{"components":[{"internalType":"bytes","name":"value","type":"bytes"},{"internalType":"uint256","name":"power","type":"uint256"},{"internalType":"uint256","name":"aggregateTimestamp","type":"uint256"},{"internalType":"uint256","name":"attestationTimestamp","type":"uint256"},{"internalType":"uint256","name":"relayTimestamp","type":"uint256"}],"internalType":"struct IDataBankPlayground.AggregateData","name":"_aggregateData","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"updateOracleDataPlayground","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getAggregateByIndex(bytes32,uint256)":"717681c6","getAggregateValueCount(bytes32)":"e3ac7e11","getCurrentAggregateData(bytes32)":"cb956711","updateOracleDataPlayground(bytes32,bytes)":"f237640a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_queryId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getAggregateByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aggregateTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"attestationTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"relayTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct IDataBankPlayground.AggregateData\",\"name\":\"_aggregateData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_queryId\",\"type\":\"bytes32\"}],\"name\":\"getAggregateValueCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_queryId\",\"type\":\"bytes32\"}],\"name\":\"getCurrentAggregateData\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aggregateTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"attestationTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"relayTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct IDataBankPlayground.AggregateData\",\"name\":\"_aggregateData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_queryId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_value\",\"type\":\"bytes\"}],\"name\":\"updateOracleDataPlayground\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This interface is for testing purposes only. Not for production use.\",\"kind\":\"dev\",\"methods\":{\"getAggregateByIndex(bytes32,uint256)\":{\"details\":\"returns the aggregate data for a given query ID and index\",\"params\":{\"_index\":\"the index of the aggregate data to get\",\"_queryId\":\"the query ID to get the aggregate data for\"},\"returns\":{\"_aggregateData\":\"the aggregate data\"}},\"getAggregateValueCount(bytes32)\":{\"details\":\"returns the total number of aggregate values\",\"params\":{\"_queryId\":\"the query ID to get the aggregate value count for\"},\"returns\":{\"_0\":\"number of aggregate values stored\"}},\"getCurrentAggregateData(bytes32)\":{\"details\":\"returns the current aggregate data for a given query ID\",\"params\":{\"_queryId\":\"the query ID to get the current aggregate data for\"},\"returns\":{\"_aggregateData\":\"the current aggregate data\"}},\"updateOracleDataPlayground(bytes32,bytes)\":{\"details\":\"updates oracle data with new value for playground testing\",\"params\":{\"_queryId\":\"the query ID to update the oracle data for\",\"_value\":\"the value to update the oracle data with\"}}},\"title\":\"IDataBankPlayground\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface for DataBankPlayground testing contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IDataBankPlayground.sol\":\"IDataBankPlayground\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IDataBankPlayground.sol\":{\"keccak256\":\"0x5611c8a1c6a50caa40671297f5dc16856528e50745f0bb0d1b78576ed7eb1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f96de673cc24f4ac5517931bc0d51afa2358d3a764dd75eec2e3476ae962103\",\"dweb:/ipfs/Qmf1EdusGdfxxkkiJCaskH53Q7WwKn1dN7Mj19BFeAPsCv\"]}},\"version\":1}"}},"contracts/interfaces/ITellorDataBridge.sol":{"ITellorDataBridge":{"abi":[{"inputs":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"powerThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unbondingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"validatorTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"queryId","type":"bytes32"},{"components":[{"internalType":"bytes","name":"value","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"aggregatePower","type":"uint256"},{"internalType":"uint256","name":"previousTimestamp","type":"uint256"},{"internalType":"uint256","name":"nextTimestamp","type":"uint256"},{"internalType":"uint256","name":"lastConsensusTimestamp","type":"uint256"}],"internalType":"struct ReportData","name":"report","type":"tuple"},{"internalType":"uint256","name":"attestationTimestamp","type":"uint256"}],"internalType":"struct OracleAttestationData","name":"_attestData","type":"tuple"},{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"power","type":"uint256"}],"internalType":"struct Validator[]","name":"_currentValidatorSet","type":"tuple[]"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct Signature[]","name":"_sigs","type":"tuple[]"}],"name":"verifyOracleData","outputs":[],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"guardian()":"452a9320","powerThreshold()":"ba95ec27","unbondingPeriod()":"6cf6d675","validatorTimestamp()":"4f76f1ee","verifyOracleData((bytes32,(bytes,uint256,uint256,uint256,uint256,uint256),uint256),(address,uint256)[],(uint8,bytes32,bytes32)[])":"5e0d3b0f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"powerThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unbondingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"queryId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aggregatePower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"previousTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nextTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastConsensusTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct ReportData\",\"name\":\"report\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"attestationTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct OracleAttestationData\",\"name\":\"_attestData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"internalType\":\"struct Validator[]\",\"name\":\"_currentValidatorSet\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature[]\",\"name\":\"_sigs\",\"type\":\"tuple[]\"}],\"name\":\"verifyOracleData\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ITellorDataBridge.sol\":\"ITellorDataBridge\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ITellorDataBridge.sol\":{\"keccak256\":\"0xe63280ed178d0751b9eba8be5c98a7c1587fcf728c8c2cb2f9d261fc4a650d0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a16c3e825c0ad4eb206765656249fb21f3fbe23eb6ad64dac036eb084f215d9\",\"dweb:/ipfs/QmV3de6xCgd864FEhjbiPyTUNhYgB4hPAvwEu8koYoZHwG\"]}},\"version\":1}"}},"contracts/testing/DataBankPlayground.sol":{"DataBankPlayground":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"queryId","type":"bytes32"},{"components":[{"internalType":"bytes32","name":"queryId","type":"bytes32"},{"components":[{"internalType":"bytes","name":"value","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"aggregatePower","type":"uint256"},{"internalType":"uint256","name":"previousTimestamp","type":"uint256"},{"internalType":"uint256","name":"nextTimestamp","type":"uint256"},{"internalType":"uint256","name":"lastConsensusTimestamp","type":"uint256"}],"internalType":"struct ReportData","name":"report","type":"tuple"},{"internalType":"uint256","name":"attestationTimestamp","type":"uint256"}],"indexed":false,"internalType":"struct OracleAttestationData","name":"attestData","type":"tuple"}],"name":"OracleUpdated","type":"event"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"data","outputs":[{"internalType":"bytes","name":"value","type":"bytes"},{"internalType":"uint256","name":"power","type":"uint256"},{"internalType":"uint256","name":"aggregateTimestamp","type":"uint256"},{"internalType":"uint256","name":"attestationTimestamp","type":"uint256"},{"internalType":"uint256","name":"relayTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getAggregateByIndex","outputs":[{"components":[{"internalType":"bytes","name":"value","type":"bytes"},{"internalType":"uint256","name":"power","type":"uint256"},{"internalType":"uint256","name":"aggregateTimestamp","type":"uint256"},{"internalType":"uint256","name":"attestationTimestamp","type":"uint256"},{"internalType":"uint256","name":"relayTimestamp","type":"uint256"}],"internalType":"struct DataBankPlayground.AggregateData","name":"_aggregateData","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"}],"name":"getAggregateValueCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"}],"name":"getCurrentAggregateData","outputs":[{"components":[{"internalType":"bytes","name":"value","type":"bytes"},{"internalType":"uint256","name":"power","type":"uint256"},{"internalType":"uint256","name":"aggregateTimestamp","type":"uint256"},{"internalType":"uint256","name":"attestationTimestamp","type":"uint256"},{"internalType":"uint256","name":"relayTimestamp","type":"uint256"}],"internalType":"struct DataBankPlayground.AggregateData","name":"_aggregateData","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"queryId","type":"bytes32"},{"components":[{"internalType":"bytes","name":"value","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"aggregatePower","type":"uint256"},{"internalType":"uint256","name":"previousTimestamp","type":"uint256"},{"internalType":"uint256","name":"nextTimestamp","type":"uint256"},{"internalType":"uint256","name":"lastConsensusTimestamp","type":"uint256"}],"internalType":"struct ReportData","name":"report","type":"tuple"},{"internalType":"uint256","name":"attestationTimestamp","type":"uint256"}],"internalType":"struct OracleAttestationData","name":"_attestData","type":"tuple"},{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"power","type":"uint256"}],"internalType":"struct Validator[]","name":"","type":"tuple[]"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct Signature[]","name":"","type":"tuple[]"}],"name":"updateOracleData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"updateOracleDataPlayground","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50611444806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80636180801014610067578063717681c6146100835780638d12c426146100b3578063cb956711146100e7578063e3ac7e1114610117578063f237640a14610147575b600080fd5b610081600480360381019061007c919061085e565b610163565b005b61009d6004803603810190610098919061097b565b6102d7565b6040516100aa9190610ad0565b60405180910390f35b6100cd60048036038101906100c8919061097b565b6103de565b6040516100de959493929190610b4b565b60405180910390f35b61010160048036038101906100fc9190610ba5565b6104b9565b60405161010e9190610ad0565b60405180910390f35b610131600480360381019061012c9190610ba5565b6104d1565b60405161013e9190610bd2565b60405180910390f35b610161600480360381019061015c9190610d1d565b6104f0565b005b600080866000013581526020019081526020016000206040518060a001604052808780602001906101949190610d88565b80600001906101a39190610db0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018780602001906101fb9190610d88565b6040013581526020018780602001906102149190610d88565b602001358152602001876040013581526020014281525090806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000019081610269919061101f565b5060208201518160010155604082015181600201556060820151816003015560808201518160040155505084600001357f32569c122e0d7a43079203df1373675696c8ccd8ca67de60dc2238b6bb226214866040516102c89190611318565b60405180910390a25050505050565b6102df61073c565b60008084815260200190815260200160002082815481106103035761030261133a565b5b90600052602060002090600502016040518060a001604052908160008201805461032c90610e42565b80601f016020809104026020016040519081016040528092919081815260200182805461035890610e42565b80156103a55780601f1061037a576101008083540402835291602001916103a5565b820191906000526020600020905b81548152906001019060200180831161038857829003601f168201915b50505050508152602001600182015481526020016002820154815260200160038201548152602001600482015481525050905092915050565b600060205281600052604060002081815481106103fa57600080fd5b90600052602060002090600502016000915091505080600001805461041e90610e42565b80601f016020809104026020016040519081016040528092919081815260200182805461044a90610e42565b80156104975780601f1061046c57610100808354040283529160200191610497565b820191906000526020600020905b81548152906001019060200180831161047a57829003601f168201915b5050505050908060010154908060020154908060030154908060040154905085565b6104c161073c565b6104ca826105b6565b9050919050565b6000806000838152602001908152602001600020805490509050919050565b60006103e86001426105029190611398565b61050c91906113cc565b90506000808481526020019081526020016000206040518060a00160405280848152602001600081526020018381526020018381526020014281525090806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000019081610586919061101f565b50602082015181600101556040820151816002015560608201518160030155608082015181600401555050505050565b6105be61073c565b6000806000848152602001908152602001600020805490500361061c576040518060a0016040528060405180602001604052806000815250815260200160008152602001600081526020016000815260200160008152509050610737565b6000808381526020019081526020016000206001600080858152602001908152602001600020805490506106509190611398565b815481106106615761066061133a565b5b90600052602060002090600502016040518060a001604052908160008201805461068a90610e42565b80601f01602080910402602001604051908101604052809291908181526020018280546106b690610e42565b80156107035780601f106106d857610100808354040283529160200191610703565b820191906000526020600020905b8154815290600101906020018083116106e657829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505090505b919050565b6040518060a0016040528060608152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b60006060828403121561079a5761079961077f565b5b81905092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126107c8576107c76107a3565b5b8235905067ffffffffffffffff8111156107e5576107e46107a8565b5b602083019150836040820283011115610801576108006107ad565b5b9250929050565b60008083601f84011261081e5761081d6107a3565b5b8235905067ffffffffffffffff81111561083b5761083a6107a8565b5b602083019150836060820283011115610857576108566107ad565b5b9250929050565b60008060008060006060868803121561087a57610879610775565b5b600086013567ffffffffffffffff8111156108985761089761077a565b5b6108a488828901610784565b955050602086013567ffffffffffffffff8111156108c5576108c461077a565b5b6108d1888289016107b2565b9450945050604086013567ffffffffffffffff8111156108f4576108f361077a565b5b61090088828901610808565b92509250509295509295909350565b6000819050919050565b6109228161090f565b811461092d57600080fd5b50565b60008135905061093f81610919565b92915050565b6000819050919050565b61095881610945565b811461096357600080fd5b50565b6000813590506109758161094f565b92915050565b6000806040838503121561099257610991610775565b5b60006109a085828601610930565b92505060206109b185828601610966565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109f55780820151818401526020810190506109da565b60008484015250505050565b6000601f19601f8301169050919050565b6000610a1d826109bb565b610a2781856109c6565b9350610a378185602086016109d7565b610a4081610a01565b840191505092915050565b610a5481610945565b82525050565b600060a0830160008301518482036000860152610a778282610a12565b9150506020830151610a8c6020860182610a4b565b506040830151610a9f6040860182610a4b565b506060830151610ab26060860182610a4b565b506080830151610ac56080860182610a4b565b508091505092915050565b60006020820190508181036000830152610aea8184610a5a565b905092915050565b600082825260208201905092915050565b6000610b0e826109bb565b610b188185610af2565b9350610b288185602086016109d7565b610b3181610a01565b840191505092915050565b610b4581610945565b82525050565b600060a0820190508181036000830152610b658188610b03565b9050610b746020830187610b3c565b610b816040830186610b3c565b610b8e6060830185610b3c565b610b9b6080830184610b3c565b9695505050505050565b600060208284031215610bbb57610bba610775565b5b6000610bc984828501610930565b91505092915050565b6000602082019050610be76000830184610b3c565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c2a82610a01565b810181811067ffffffffffffffff82111715610c4957610c48610bf2565b5b80604052505050565b6000610c5c61076b565b9050610c688282610c21565b919050565b600067ffffffffffffffff821115610c8857610c87610bf2565b5b610c9182610a01565b9050602081019050919050565b82818337600083830152505050565b6000610cc0610cbb84610c6d565b610c52565b905082815260208101848484011115610cdc57610cdb610bed565b5b610ce7848285610c9e565b509392505050565b600082601f830112610d0457610d036107a3565b5b8135610d14848260208601610cad565b91505092915050565b60008060408385031215610d3457610d33610775565b5b6000610d4285828601610930565b925050602083013567ffffffffffffffff811115610d6357610d6261077a565b5b610d6f85828601610cef565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008235600160c003833603038112610da457610da3610d79565b5b80830191505092915050565b60008083356001602003843603038112610dcd57610dcc610d79565b5b80840192508235915067ffffffffffffffff821115610def57610dee610d7e565b5b602083019250600182023603831315610e0b57610e0a610d83565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e5a57607f821691505b602082108103610e6d57610e6c610e13565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302610ed57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610e98565b610edf8683610e98565b95508019841693508086168417925050509392505050565b6000819050919050565b6000610f1c610f17610f1284610945565b610ef7565b610945565b9050919050565b6000819050919050565b610f3683610f01565b610f4a610f4282610f23565b848454610ea5565b825550505050565b600090565b610f5f610f52565b610f6a818484610f2d565b505050565b5b81811015610f8e57610f83600082610f57565b600181019050610f70565b5050565b601f821115610fd357610fa481610e73565b610fad84610e88565b81016020851015610fbc578190505b610fd0610fc885610e88565b830182610f6f565b50505b505050565b600082821c905092915050565b6000610ff660001984600802610fd8565b1980831691505092915050565b600061100f8383610fe5565b9150826002028217905092915050565b611028826109bb565b67ffffffffffffffff81111561104157611040610bf2565b5b61104b8254610e42565b611056828285610f92565b600060209050601f8311600181146110895760008415611077578287015190505b6110818582611003565b8655506110e9565b601f19841661109786610e73565b60005b828110156110bf5784890151825560018201915060208501945060208101905061109a565b868310156110dc57848901516110d8601f891682610fe5565b8355505b6001600288020188555050505b505050505050565b60006111006020840184610930565b905092915050565b6111118161090f565b82525050565b600080fd5b60008235600160c00383360303811261113857611137611117565b5b82810191505092915050565b600080fd5b600080fd5b6000808335600160200384360303811261116b5761116a611117565b5b83810192508235915060208301925067ffffffffffffffff82111561119357611192611144565b5b6001820236038313156111a9576111a8611149565b5b509250929050565b60006111bd83856109c6565b93506111ca838584610c9e565b6111d383610a01565b840190509392505050565b60006111ed6020840184610966565b905092915050565b600060c08301611208600084018461114e565b858303600087015261121b8382846111b1565b9250505061122c60208401846111de565b6112396020860182610a4b565b5061124760408401846111de565b6112546040860182610a4b565b5061126260608401846111de565b61126f6060860182610a4b565b5061127d60808401846111de565b61128a6080860182610a4b565b5061129860a08401846111de565b6112a560a0860182610a4b565b508091505092915050565b6000606083016112c360008401846110f1565b6112d06000860182611108565b506112de602084018461111c565b84820360208601526112f082826111f5565b91505061130060408401846111de565b61130d6040860182610a4b565b508091505092915050565b6000602082019050818103600083015261133281846112b0565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113a382610945565b91506113ae83610945565b92508282039050818111156113c6576113c5611369565b5b92915050565b60006113d782610945565b91506113e283610945565b92508282026113f081610945565b9150828204841483151761140757611406611369565b5b509291505056fea2646970667358221220d922adb488834a0545ba3634eb410528a1c1d80682300de3fde8b06bb8179ea064736f6c63430008130033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1444 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x61808010 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x717681C6 EQ PUSH2 0x83 JUMPI DUP1 PUSH4 0x8D12C426 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0xCB956711 EQ PUSH2 0xE7 JUMPI DUP1 PUSH4 0xE3AC7E11 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0xF237640A EQ PUSH2 0x147 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x85E JUMP JUMPDEST PUSH2 0x163 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x97B JUMP JUMPDEST PUSH2 0x2D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAA SWAP2 SWAP1 PUSH2 0xAD0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x97B JUMP JUMPDEST PUSH2 0x3DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDE SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x101 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFC SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH2 0x4B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xAD0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12C SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH2 0x4D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13E SWAP2 SWAP1 PUSH2 0xBD2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x161 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15C SWAP2 SWAP1 PUSH2 0xD1D JUMP JUMPDEST PUSH2 0x4F0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x0 ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP8 DUP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x194 SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST DUP1 PUSH1 0x0 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0xDB0 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x40 ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x214 SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x20 ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x40 ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP2 PUSH2 0x269 SWAP2 SWAP1 PUSH2 0x101F JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE POP POP DUP5 PUSH1 0x0 ADD CALLDATALOAD PUSH32 0x32569C122E0D7A43079203DF1373675696C8CCD8CA67DE60DC2238B6BB226214 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2C8 SWAP2 SWAP1 PUSH2 0x1318 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2DF PUSH2 0x73C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x303 JUMPI PUSH2 0x302 PUSH2 0x133A JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x32C SWAP1 PUSH2 0xE42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x358 SWAP1 PUSH2 0xE42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3A5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x37A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3A5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x388 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x41E SWAP1 PUSH2 0xE42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x44A SWAP1 PUSH2 0xE42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x497 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x497 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 POP DUP6 JUMP JUMPDEST PUSH2 0x4C1 PUSH2 0x73C JUMP JUMPDEST PUSH2 0x4CA DUP3 PUSH2 0x5B6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E8 PUSH1 0x1 TIMESTAMP PUSH2 0x502 SWAP2 SWAP1 PUSH2 0x1398 JUMP JUMPDEST PUSH2 0x50C SWAP2 SWAP1 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP2 PUSH2 0x586 SWAP2 SWAP1 PUSH2 0x101F JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5BE PUSH2 0x73C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD SWAP1 POP SUB PUSH2 0x61C JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH2 0x737 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD SWAP1 POP PUSH2 0x650 SWAP2 SWAP1 PUSH2 0x1398 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x661 JUMPI PUSH2 0x660 PUSH2 0x133A JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x68A SWAP1 PUSH2 0xE42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6B6 SWAP1 PUSH2 0xE42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x703 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6D8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x703 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6E6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x79A JUMPI PUSH2 0x799 PUSH2 0x77F JUMP JUMPDEST JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x7C8 JUMPI PUSH2 0x7C7 PUSH2 0x7A3 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7E5 JUMPI PUSH2 0x7E4 PUSH2 0x7A8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x40 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x801 JUMPI PUSH2 0x800 PUSH2 0x7AD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x81E JUMPI PUSH2 0x81D PUSH2 0x7A3 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x83B JUMPI PUSH2 0x83A PUSH2 0x7A8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x60 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x857 JUMPI PUSH2 0x856 PUSH2 0x7AD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x87A JUMPI PUSH2 0x879 PUSH2 0x775 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x898 JUMPI PUSH2 0x897 PUSH2 0x77A JUMP JUMPDEST JUMPDEST PUSH2 0x8A4 DUP9 DUP3 DUP10 ADD PUSH2 0x784 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8C5 JUMPI PUSH2 0x8C4 PUSH2 0x77A JUMP JUMPDEST JUMPDEST PUSH2 0x8D1 DUP9 DUP3 DUP10 ADD PUSH2 0x7B2 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8F4 JUMPI PUSH2 0x8F3 PUSH2 0x77A JUMP JUMPDEST JUMPDEST PUSH2 0x900 DUP9 DUP3 DUP10 ADD PUSH2 0x808 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x922 DUP2 PUSH2 0x90F JUMP JUMPDEST DUP2 EQ PUSH2 0x92D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x93F DUP2 PUSH2 0x919 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x958 DUP2 PUSH2 0x945 JUMP JUMPDEST DUP2 EQ PUSH2 0x963 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x975 DUP2 PUSH2 0x94F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x992 JUMPI PUSH2 0x991 PUSH2 0x775 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x9A0 DUP6 DUP3 DUP7 ADD PUSH2 0x930 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x9B1 DUP6 DUP3 DUP7 ADD PUSH2 0x966 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9F5 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA1D DUP3 PUSH2 0x9BB JUMP JUMPDEST PUSH2 0xA27 DUP2 DUP6 PUSH2 0x9C6 JUMP JUMPDEST SWAP4 POP PUSH2 0xA37 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D7 JUMP JUMPDEST PUSH2 0xA40 DUP2 PUSH2 0xA01 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA54 DUP2 PUSH2 0x945 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0xA77 DUP3 DUP3 PUSH2 0xA12 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0xA8C PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0xA9F PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0xAB2 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xAC5 PUSH1 0x80 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xAEA DUP2 DUP5 PUSH2 0xA5A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB0E DUP3 PUSH2 0x9BB JUMP JUMPDEST PUSH2 0xB18 DUP2 DUP6 PUSH2 0xAF2 JUMP JUMPDEST SWAP4 POP PUSH2 0xB28 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D7 JUMP JUMPDEST PUSH2 0xB31 DUP2 PUSH2 0xA01 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB45 DUP2 PUSH2 0x945 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB65 DUP2 DUP9 PUSH2 0xB03 JUMP JUMPDEST SWAP1 POP PUSH2 0xB74 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0xB3C JUMP JUMPDEST PUSH2 0xB81 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0xB3C JUMP JUMPDEST PUSH2 0xB8E PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xB3C JUMP JUMPDEST PUSH2 0xB9B PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0xB3C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBBB JUMPI PUSH2 0xBBA PUSH2 0x775 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xBC9 DUP5 DUP3 DUP6 ADD PUSH2 0x930 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBE7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB3C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xC2A DUP3 PUSH2 0xA01 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xC49 JUMPI PUSH2 0xC48 PUSH2 0xBF2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC5C PUSH2 0x76B JUMP JUMPDEST SWAP1 POP PUSH2 0xC68 DUP3 DUP3 PUSH2 0xC21 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC88 JUMPI PUSH2 0xC87 PUSH2 0xBF2 JUMP JUMPDEST JUMPDEST PUSH2 0xC91 DUP3 PUSH2 0xA01 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC0 PUSH2 0xCBB DUP5 PUSH2 0xC6D JUMP JUMPDEST PUSH2 0xC52 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xCDC JUMPI PUSH2 0xCDB PUSH2 0xBED JUMP JUMPDEST JUMPDEST PUSH2 0xCE7 DUP5 DUP3 DUP6 PUSH2 0xC9E JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD04 JUMPI PUSH2 0xD03 PUSH2 0x7A3 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xD14 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xCAD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD34 JUMPI PUSH2 0xD33 PUSH2 0x775 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD42 DUP6 DUP3 DUP7 ADD PUSH2 0x930 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD63 JUMPI PUSH2 0xD62 PUSH2 0x77A JUMP JUMPDEST JUMPDEST PUSH2 0xD6F DUP6 DUP3 DUP7 ADD PUSH2 0xCEF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0xC0 SUB DUP4 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0xDA4 JUMPI PUSH2 0xDA3 PUSH2 0xD79 JUMP JUMPDEST JUMPDEST DUP1 DUP4 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0xDCD JUMPI PUSH2 0xDCC PUSH2 0xD79 JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xDEF JUMPI PUSH2 0xDEE PUSH2 0xD7E JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0xE0B JUMPI PUSH2 0xE0A PUSH2 0xD83 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE5A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE6D JUMPI PUSH2 0xE6C PUSH2 0xE13 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0xED5 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0xE98 JUMP JUMPDEST PUSH2 0xEDF DUP7 DUP4 PUSH2 0xE98 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF1C PUSH2 0xF17 PUSH2 0xF12 DUP5 PUSH2 0x945 JUMP JUMPDEST PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0x945 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF36 DUP4 PUSH2 0xF01 JUMP JUMPDEST PUSH2 0xF4A PUSH2 0xF42 DUP3 PUSH2 0xF23 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0xEA5 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0xF5F PUSH2 0xF52 JUMP JUMPDEST PUSH2 0xF6A DUP2 DUP5 DUP5 PUSH2 0xF2D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF8E JUMPI PUSH2 0xF83 PUSH1 0x0 DUP3 PUSH2 0xF57 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0xF70 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xFD3 JUMPI PUSH2 0xFA4 DUP2 PUSH2 0xE73 JUMP JUMPDEST PUSH2 0xFAD DUP5 PUSH2 0xE88 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0xFBC JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0xFD0 PUSH2 0xFC8 DUP6 PUSH2 0xE88 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0xF6F JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFF6 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0xFD8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100F DUP4 DUP4 PUSH2 0xFE5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1028 DUP3 PUSH2 0x9BB JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1041 JUMPI PUSH2 0x1040 PUSH2 0xBF2 JUMP JUMPDEST JUMPDEST PUSH2 0x104B DUP3 SLOAD PUSH2 0xE42 JUMP JUMPDEST PUSH2 0x1056 DUP3 DUP3 DUP6 PUSH2 0xF92 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1089 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1077 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1081 DUP6 DUP3 PUSH2 0x1003 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x10E9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1097 DUP7 PUSH2 0xE73 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x10BF JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x109A JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x10DC JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x10D8 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0xFE5 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1100 PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x930 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1111 DUP2 PUSH2 0x90F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0xC0 SUB DUP4 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x1138 JUMPI PUSH2 0x1137 PUSH2 0x1117 JUMP JUMPDEST JUMPDEST DUP3 DUP2 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x116B JUMPI PUSH2 0x116A PUSH2 0x1117 JUMP JUMPDEST JUMPDEST DUP4 DUP2 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1193 JUMPI PUSH2 0x1192 PUSH2 0x1144 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x11A9 JUMPI PUSH2 0x11A8 PUSH2 0x1149 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11BD DUP4 DUP6 PUSH2 0x9C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x11CA DUP4 DUP6 DUP5 PUSH2 0xC9E JUMP JUMPDEST PUSH2 0x11D3 DUP4 PUSH2 0xA01 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11ED PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x966 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP4 ADD PUSH2 0x1208 PUSH1 0x0 DUP5 ADD DUP5 PUSH2 0x114E JUMP JUMPDEST DUP6 DUP4 SUB PUSH1 0x0 DUP8 ADD MSTORE PUSH2 0x121B DUP4 DUP3 DUP5 PUSH2 0x11B1 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x122C PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x1239 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH2 0x1247 PUSH1 0x40 DUP5 ADD DUP5 PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x1254 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH2 0x1262 PUSH1 0x60 DUP5 ADD DUP5 PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x126F PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH2 0x127D PUSH1 0x80 DUP5 ADD DUP5 PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x128A PUSH1 0x80 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH2 0x1298 PUSH1 0xA0 DUP5 ADD DUP5 PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x12A5 PUSH1 0xA0 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 ADD PUSH2 0x12C3 PUSH1 0x0 DUP5 ADD DUP5 PUSH2 0x10F1 JUMP JUMPDEST PUSH2 0x12D0 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x1108 JUMP JUMPDEST POP PUSH2 0x12DE PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x111C JUMP JUMPDEST DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x12F0 DUP3 DUP3 PUSH2 0x11F5 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1300 PUSH1 0x40 DUP5 ADD DUP5 PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x130D PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1332 DUP2 DUP5 PUSH2 0x12B0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x13A3 DUP3 PUSH2 0x945 JUMP JUMPDEST SWAP2 POP PUSH2 0x13AE DUP4 PUSH2 0x945 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x13C6 JUMPI PUSH2 0x13C5 PUSH2 0x1369 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13D7 DUP3 PUSH2 0x945 JUMP JUMPDEST SWAP2 POP PUSH2 0x13E2 DUP4 PUSH2 0x945 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x13F0 DUP2 PUSH2 0x945 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1407 JUMPI PUSH2 0x1406 PUSH2 0x1369 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0x22 0xAD 0xB4 DUP9 DUP4 0x4A SDIV GASLIMIT 0xBA CALLDATASIZE CALLVALUE 0xEB COINBASE SDIV 0x28 LOG1 0xC1 0xD8 MOD DUP3 ADDRESS 0xD 0xE3 REVERT 0xE8 0xB0 PUSH12 0xB8179EA064736F6C63430008 SGT STOP CALLER ","sourceMap":"638:3951:2:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_getCurrentAggregateData_316":{"entryPoint":1462,"id":316,"parameterSlots":1,"returnSlots":1},"@data_130":{"entryPoint":990,"id":130,"parameterSlots":0,"returnSlots":0},"@getAggregateByIndex_243":{"entryPoint":727,"id":243,"parameterSlots":2,"returnSlots":1},"@getAggregateValueCount_257":{"entryPoint":1233,"id":257,"parameterSlots":1,"returnSlots":1},"@getCurrentAggregateData_271":{"entryPoint":1209,"id":271,"parameterSlots":1,"returnSlots":1},"@updateOracleDataPlayground_225":{"entryPoint":1264,"id":225,"parameterSlots":2,"returnSlots":0},"@updateOracleData_192":{"entryPoint":355,"id":192,"parameterSlots":5,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":3245,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_array$_t_struct$_Signature_$80_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":2056,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_struct$_Validator_$85_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":1970,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes32":{"entryPoint":2352,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":3311,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_OracleAttestationData_$60_calldata_ptr":{"entryPoint":1924,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2406,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":2981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_bytes_memory_ptr":{"entryPoint":3357,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":2427,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_OracleAttestationData_$60_calldata_ptrt_array$_t_struct$_Validator_$85_calldata_ptr_$dyn_calldata_ptrt_array$_t_struct$_Signature_$80_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":2142,"id":null,"parameterSlots":2,"returnSlots":5},"abi_encode_t_bytes32_to_t_bytes32":{"entryPoint":4360,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr":{"entryPoint":4529,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":2578,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":2819,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_AggregateData_$141_memory_ptr_to_t_struct$_AggregateData_$141_memory_ptr_fromStack":{"entryPoint":2650,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_OracleAttestationData_$60_calldata_ptr_to_t_struct$_OracleAttestationData_$60_memory_ptr_fromStack":{"entryPoint":4784,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_ReportData_$73_calldata_ptr_to_t_struct$_ReportData_$73_memory_ptr":{"entryPoint":4597,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":2635,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2876,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bytes_memory_ptr_t_uint256_t_uint256_t_uint256_t_uint256__to_t_bytes_memory_ptr_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":2891,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_struct$_AggregateData_$141_memory_ptr__to_t_struct$_AggregateData_$141_memory_ptr__fromStack_reversed":{"entryPoint":2768,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_OracleAttestationData_$60_calldata_ptr__to_t_struct$_OracleAttestationData_$60_memory_ptr__fromStack_reversed":{"entryPoint":4888,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3026,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":3504,"id":null,"parameterSlots":2,"returnSlots":2},"access_calldata_tail_t_struct$_ReportData_$73_calldata_ptr":{"entryPoint":3464,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":3154,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1899,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":3181,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_bytes_storage":{"entryPoint":3699,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":2491,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":2502,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":2802,"id":null,"parameterSlots":2,"returnSlots":1},"calldata_access_t_bytes32":{"entryPoint":4337,"id":null,"parameterSlots":2,"returnSlots":1},"calldata_access_t_bytes_calldata_ptr":{"entryPoint":4430,"id":null,"parameterSlots":2,"returnSlots":2},"calldata_access_t_struct$_ReportData_$73_calldata_ptr":{"entryPoint":4380,"id":null,"parameterSlots":2,"returnSlots":1},"calldata_access_t_uint256":{"entryPoint":4574,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":5068,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":5016,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_bytes_storage":{"entryPoint":3986,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_bytes32":{"entryPoint":2319,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":2373,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":3951,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":3841,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":4127,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":3230,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":2519,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":3720,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":3650,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":4099,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":3105,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":3831,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":4069,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":4969,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":3603,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":4922,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3058,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":3875,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_0803104b3ab68501accf02de57372b8e5e6e1582158b771d3f89279dc6822fe2":{"entryPoint":4420,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":1960,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1955,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a":{"entryPoint":3454,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d":{"entryPoint":1919,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad":{"entryPoint":3449,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3894daff73bdbb8963c284e167b207f7abade3c031c50828ea230a16bdbc0f20":{"entryPoint":4425,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":1965,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e":{"entryPoint":3459,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":3053,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1914,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_db64ea6d4a12deece376118739de8d9f517a2db5b58ea2ca332ea908c04c71d4":{"entryPoint":4375,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1909,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":2561,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":3736,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":4056,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":3927,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":3749,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":3885,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":2329,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2383,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":3922,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:24967:3","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:3","statements":[{"nodeType":"YulAssignment","src":"57:19:3","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:3","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:3"},"nodeType":"YulFunctionCall","src":"67:9:3"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:3"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:3","type":""}],"src":"7:75:3"},{"body":{"nodeType":"YulBlock","src":"177:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:3"},"nodeType":"YulFunctionCall","src":"187:12:3"},"nodeType":"YulExpressionStatement","src":"187:12:3"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:3"},{"body":{"nodeType":"YulBlock","src":"300:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:3"},"nodeType":"YulFunctionCall","src":"310:12:3"},"nodeType":"YulExpressionStatement","src":"310:12:3"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:3"},{"body":{"nodeType":"YulBlock","src":"423:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"440:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"443:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"433:6:3"},"nodeType":"YulFunctionCall","src":"433:12:3"},"nodeType":"YulExpressionStatement","src":"433:12:3"}]},"name":"revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d","nodeType":"YulFunctionDefinition","src":"334:117:3"},{"body":{"nodeType":"YulBlock","src":"584:152:3","statements":[{"body":{"nodeType":"YulBlock","src":"623:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d","nodeType":"YulIdentifier","src":"625:77:3"},"nodeType":"YulFunctionCall","src":"625:79:3"},"nodeType":"YulExpressionStatement","src":"625:79:3"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"605:3:3"},{"name":"offset","nodeType":"YulIdentifier","src":"610:6:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"601:3:3"},"nodeType":"YulFunctionCall","src":"601:16:3"},{"kind":"number","nodeType":"YulLiteral","src":"619:2:3","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"597:3:3"},"nodeType":"YulFunctionCall","src":"597:25:3"},"nodeType":"YulIf","src":"594:112:3"},{"nodeType":"YulAssignment","src":"715:15:3","value":{"name":"offset","nodeType":"YulIdentifier","src":"724:6:3"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"715:5:3"}]}]},"name":"abi_decode_t_struct$_OracleAttestationData_$60_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"562:6:3","type":""},{"name":"end","nodeType":"YulTypedName","src":"570:3:3","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"578:5:3","type":""}],"src":"493:243:3"},{"body":{"nodeType":"YulBlock","src":"831:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"848:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"851:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"841:6:3"},"nodeType":"YulFunctionCall","src":"841:12:3"},"nodeType":"YulExpressionStatement","src":"841:12:3"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulFunctionDefinition","src":"742:117:3"},{"body":{"nodeType":"YulBlock","src":"954:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"971:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"974:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"964:6:3"},"nodeType":"YulFunctionCall","src":"964:12:3"},"nodeType":"YulExpressionStatement","src":"964:12:3"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nodeType":"YulFunctionDefinition","src":"865:117:3"},{"body":{"nodeType":"YulBlock","src":"1077:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1094:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1097:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1087:6:3"},"nodeType":"YulFunctionCall","src":"1087:12:3"},"nodeType":"YulExpressionStatement","src":"1087:12:3"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulFunctionDefinition","src":"988:117:3"},{"body":{"nodeType":"YulBlock","src":"1254:478:3","statements":[{"body":{"nodeType":"YulBlock","src":"1303:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"1305:77:3"},"nodeType":"YulFunctionCall","src":"1305:79:3"},"nodeType":"YulExpressionStatement","src":"1305:79:3"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1282:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"1290:4:3","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1278:3:3"},"nodeType":"YulFunctionCall","src":"1278:17:3"},{"name":"end","nodeType":"YulIdentifier","src":"1297:3:3"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1274:3:3"},"nodeType":"YulFunctionCall","src":"1274:27:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1267:6:3"},"nodeType":"YulFunctionCall","src":"1267:35:3"},"nodeType":"YulIf","src":"1264:122:3"},{"nodeType":"YulAssignment","src":"1395:30:3","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1418:6:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1405:12:3"},"nodeType":"YulFunctionCall","src":"1405:20:3"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1395:6:3"}]},{"body":{"nodeType":"YulBlock","src":"1468:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nodeType":"YulIdentifier","src":"1470:77:3"},"nodeType":"YulFunctionCall","src":"1470:79:3"},"nodeType":"YulExpressionStatement","src":"1470:79:3"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1440:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"1448:18:3","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1437:2:3"},"nodeType":"YulFunctionCall","src":"1437:30:3"},"nodeType":"YulIf","src":"1434:117:3"},{"nodeType":"YulAssignment","src":"1560:29:3","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1576:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"1584:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1572:3:3"},"nodeType":"YulFunctionCall","src":"1572:17:3"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1560:8:3"}]},{"body":{"nodeType":"YulBlock","src":"1643:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulIdentifier","src":"1645:77:3"},"nodeType":"YulFunctionCall","src":"1645:79:3"},"nodeType":"YulExpressionStatement","src":"1645:79:3"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1608:8:3"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1622:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"1630:4:3","type":"","value":"0x40"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"1618:3:3"},"nodeType":"YulFunctionCall","src":"1618:17:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1604:3:3"},"nodeType":"YulFunctionCall","src":"1604:32:3"},{"name":"end","nodeType":"YulIdentifier","src":"1638:3:3"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1601:2:3"},"nodeType":"YulFunctionCall","src":"1601:41:3"},"nodeType":"YulIf","src":"1598:128:3"}]},"name":"abi_decode_t_array$_t_struct$_Validator_$85_calldata_ptr_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1221:6:3","type":""},{"name":"end","nodeType":"YulTypedName","src":"1229:3:3","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"1237:8:3","type":""},{"name":"length","nodeType":"YulTypedName","src":"1247:6:3","type":""}],"src":"1137:595:3"},{"body":{"nodeType":"YulBlock","src":"1881:478:3","statements":[{"body":{"nodeType":"YulBlock","src":"1930:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"1932:77:3"},"nodeType":"YulFunctionCall","src":"1932:79:3"},"nodeType":"YulExpressionStatement","src":"1932:79:3"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1909:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"1917:4:3","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1905:3:3"},"nodeType":"YulFunctionCall","src":"1905:17:3"},{"name":"end","nodeType":"YulIdentifier","src":"1924:3:3"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1901:3:3"},"nodeType":"YulFunctionCall","src":"1901:27:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1894:6:3"},"nodeType":"YulFunctionCall","src":"1894:35:3"},"nodeType":"YulIf","src":"1891:122:3"},{"nodeType":"YulAssignment","src":"2022:30:3","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2045:6:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2032:12:3"},"nodeType":"YulFunctionCall","src":"2032:20:3"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2022:6:3"}]},{"body":{"nodeType":"YulBlock","src":"2095:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nodeType":"YulIdentifier","src":"2097:77:3"},"nodeType":"YulFunctionCall","src":"2097:79:3"},"nodeType":"YulExpressionStatement","src":"2097:79:3"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2067:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"2075:18:3","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2064:2:3"},"nodeType":"YulFunctionCall","src":"2064:30:3"},"nodeType":"YulIf","src":"2061:117:3"},{"nodeType":"YulAssignment","src":"2187:29:3","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2203:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"2211:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2199:3:3"},"nodeType":"YulFunctionCall","src":"2199:17:3"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"2187:8:3"}]},{"body":{"nodeType":"YulBlock","src":"2270:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulIdentifier","src":"2272:77:3"},"nodeType":"YulFunctionCall","src":"2272:79:3"},"nodeType":"YulExpressionStatement","src":"2272:79:3"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"2235:8:3"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2249:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"2257:4:3","type":"","value":"0x60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2245:3:3"},"nodeType":"YulFunctionCall","src":"2245:17:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2231:3:3"},"nodeType":"YulFunctionCall","src":"2231:32:3"},{"name":"end","nodeType":"YulIdentifier","src":"2265:3:3"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2228:2:3"},"nodeType":"YulFunctionCall","src":"2228:41:3"},"nodeType":"YulIf","src":"2225:128:3"}]},"name":"abi_decode_t_array$_t_struct$_Signature_$80_calldata_ptr_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1848:6:3","type":""},{"name":"end","nodeType":"YulTypedName","src":"1856:3:3","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"1864:8:3","type":""},{"name":"length","nodeType":"YulTypedName","src":"1874:6:3","type":""}],"src":"1764:595:3"},{"body":{"nodeType":"YulBlock","src":"2628:1162:3","statements":[{"body":{"nodeType":"YulBlock","src":"2674:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"2676:77:3"},"nodeType":"YulFunctionCall","src":"2676:79:3"},"nodeType":"YulExpressionStatement","src":"2676:79:3"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2649:7:3"},{"name":"headStart","nodeType":"YulIdentifier","src":"2658:9:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2645:3:3"},"nodeType":"YulFunctionCall","src":"2645:23:3"},{"kind":"number","nodeType":"YulLiteral","src":"2670:2:3","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2641:3:3"},"nodeType":"YulFunctionCall","src":"2641:32:3"},"nodeType":"YulIf","src":"2638:119:3"},{"nodeType":"YulBlock","src":"2767:316:3","statements":[{"nodeType":"YulVariableDeclaration","src":"2782:45:3","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2813:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"2824:1:3","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2809:3:3"},"nodeType":"YulFunctionCall","src":"2809:17:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2796:12:3"},"nodeType":"YulFunctionCall","src":"2796:31:3"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2786:6:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"2874:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"2876:77:3"},"nodeType":"YulFunctionCall","src":"2876:79:3"},"nodeType":"YulExpressionStatement","src":"2876:79:3"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2846:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"2854:18:3","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2843:2:3"},"nodeType":"YulFunctionCall","src":"2843:30:3"},"nodeType":"YulIf","src":"2840:117:3"},{"nodeType":"YulAssignment","src":"2971:102:3","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3045:9:3"},{"name":"offset","nodeType":"YulIdentifier","src":"3056:6:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3041:3:3"},"nodeType":"YulFunctionCall","src":"3041:22:3"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3065:7:3"}],"functionName":{"name":"abi_decode_t_struct$_OracleAttestationData_$60_calldata_ptr","nodeType":"YulIdentifier","src":"2981:59:3"},"nodeType":"YulFunctionCall","src":"2981:92:3"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2971:6:3"}]}]},{"nodeType":"YulBlock","src":"3093:340:3","statements":[{"nodeType":"YulVariableDeclaration","src":"3108:46:3","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3139:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"3150:2:3","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3135:3:3"},"nodeType":"YulFunctionCall","src":"3135:18:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3122:12:3"},"nodeType":"YulFunctionCall","src":"3122:32:3"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3112:6:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"3201:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"3203:77:3"},"nodeType":"YulFunctionCall","src":"3203:79:3"},"nodeType":"YulExpressionStatement","src":"3203:79:3"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3173:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"3181:18:3","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3170:2:3"},"nodeType":"YulFunctionCall","src":"3170:30:3"},"nodeType":"YulIf","src":"3167:117:3"},{"nodeType":"YulAssignment","src":"3298:125:3","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3395:9:3"},{"name":"offset","nodeType":"YulIdentifier","src":"3406:6:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3391:3:3"},"nodeType":"YulFunctionCall","src":"3391:22:3"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3415:7:3"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_Validator_$85_calldata_ptr_$dyn_calldata_ptr","nodeType":"YulIdentifier","src":"3316:74:3"},"nodeType":"YulFunctionCall","src":"3316:107:3"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3298:6:3"},{"name":"value2","nodeType":"YulIdentifier","src":"3306:6:3"}]}]},{"nodeType":"YulBlock","src":"3443:340:3","statements":[{"nodeType":"YulVariableDeclaration","src":"3458:46:3","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3489:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"3500:2:3","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3485:3:3"},"nodeType":"YulFunctionCall","src":"3485:18:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3472:12:3"},"nodeType":"YulFunctionCall","src":"3472:32:3"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3462:6:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"3551:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"3553:77:3"},"nodeType":"YulFunctionCall","src":"3553:79:3"},"nodeType":"YulExpressionStatement","src":"3553:79:3"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3523:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"3531:18:3","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3520:2:3"},"nodeType":"YulFunctionCall","src":"3520:30:3"},"nodeType":"YulIf","src":"3517:117:3"},{"nodeType":"YulAssignment","src":"3648:125:3","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3745:9:3"},{"name":"offset","nodeType":"YulIdentifier","src":"3756:6:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3741:3:3"},"nodeType":"YulFunctionCall","src":"3741:22:3"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3765:7:3"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_Signature_$80_calldata_ptr_$dyn_calldata_ptr","nodeType":"YulIdentifier","src":"3666:74:3"},"nodeType":"YulFunctionCall","src":"3666:107:3"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3648:6:3"},{"name":"value4","nodeType":"YulIdentifier","src":"3656:6:3"}]}]}]},"name":"abi_decode_tuple_t_struct$_OracleAttestationData_$60_calldata_ptrt_array$_t_struct$_Validator_$85_calldata_ptr_$dyn_calldata_ptrt_array$_t_struct$_Signature_$80_calldata_ptr_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2566:9:3","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2577:7:3","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2589:6:3","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2597:6:3","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2605:6:3","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2613:6:3","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2621:6:3","type":""}],"src":"2365:1425:3"},{"body":{"nodeType":"YulBlock","src":"3841:32:3","statements":[{"nodeType":"YulAssignment","src":"3851:16:3","value":{"name":"value","nodeType":"YulIdentifier","src":"3862:5:3"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"3851:7:3"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3823:5:3","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"3833:7:3","type":""}],"src":"3796:77:3"},{"body":{"nodeType":"YulBlock","src":"3922:79:3","statements":[{"body":{"nodeType":"YulBlock","src":"3979:16:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3988:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3991:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3981:6:3"},"nodeType":"YulFunctionCall","src":"3981:12:3"},"nodeType":"YulExpressionStatement","src":"3981:12:3"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3945:5:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3970:5:3"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"3952:17:3"},"nodeType":"YulFunctionCall","src":"3952:24:3"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3942:2:3"},"nodeType":"YulFunctionCall","src":"3942:35:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3935:6:3"},"nodeType":"YulFunctionCall","src":"3935:43:3"},"nodeType":"YulIf","src":"3932:63:3"}]},"name":"validator_revert_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3915:5:3","type":""}],"src":"3879:122:3"},{"body":{"nodeType":"YulBlock","src":"4059:87:3","statements":[{"nodeType":"YulAssignment","src":"4069:29:3","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4091:6:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4078:12:3"},"nodeType":"YulFunctionCall","src":"4078:20:3"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4069:5:3"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4134:5:3"}],"functionName":{"name":"validator_revert_t_bytes32","nodeType":"YulIdentifier","src":"4107:26:3"},"nodeType":"YulFunctionCall","src":"4107:33:3"},"nodeType":"YulExpressionStatement","src":"4107:33:3"}]},"name":"abi_decode_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4037:6:3","type":""},{"name":"end","nodeType":"YulTypedName","src":"4045:3:3","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4053:5:3","type":""}],"src":"4007:139:3"},{"body":{"nodeType":"YulBlock","src":"4197:32:3","statements":[{"nodeType":"YulAssignment","src":"4207:16:3","value":{"name":"value","nodeType":"YulIdentifier","src":"4218:5:3"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4207:7:3"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4179:5:3","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4189:7:3","type":""}],"src":"4152:77:3"},{"body":{"nodeType":"YulBlock","src":"4278:79:3","statements":[{"body":{"nodeType":"YulBlock","src":"4335:16:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4344:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4347:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4337:6:3"},"nodeType":"YulFunctionCall","src":"4337:12:3"},"nodeType":"YulExpressionStatement","src":"4337:12:3"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4301:5:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4326:5:3"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"4308:17:3"},"nodeType":"YulFunctionCall","src":"4308:24:3"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4298:2:3"},"nodeType":"YulFunctionCall","src":"4298:35:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4291:6:3"},"nodeType":"YulFunctionCall","src":"4291:43:3"},"nodeType":"YulIf","src":"4288:63:3"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4271:5:3","type":""}],"src":"4235:122:3"},{"body":{"nodeType":"YulBlock","src":"4415:87:3","statements":[{"nodeType":"YulAssignment","src":"4425:29:3","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4447:6:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4434:12:3"},"nodeType":"YulFunctionCall","src":"4434:20:3"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4425:5:3"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4490:5:3"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"4463:26:3"},"nodeType":"YulFunctionCall","src":"4463:33:3"},"nodeType":"YulExpressionStatement","src":"4463:33:3"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4393:6:3","type":""},{"name":"end","nodeType":"YulTypedName","src":"4401:3:3","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4409:5:3","type":""}],"src":"4363:139:3"},{"body":{"nodeType":"YulBlock","src":"4591:391:3","statements":[{"body":{"nodeType":"YulBlock","src":"4637:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"4639:77:3"},"nodeType":"YulFunctionCall","src":"4639:79:3"},"nodeType":"YulExpressionStatement","src":"4639:79:3"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4612:7:3"},{"name":"headStart","nodeType":"YulIdentifier","src":"4621:9:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4608:3:3"},"nodeType":"YulFunctionCall","src":"4608:23:3"},{"kind":"number","nodeType":"YulLiteral","src":"4633:2:3","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4604:3:3"},"nodeType":"YulFunctionCall","src":"4604:32:3"},"nodeType":"YulIf","src":"4601:119:3"},{"nodeType":"YulBlock","src":"4730:117:3","statements":[{"nodeType":"YulVariableDeclaration","src":"4745:15:3","value":{"kind":"number","nodeType":"YulLiteral","src":"4759:1:3","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4749:6:3","type":""}]},{"nodeType":"YulAssignment","src":"4774:63:3","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4809:9:3"},{"name":"offset","nodeType":"YulIdentifier","src":"4820:6:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4805:3:3"},"nodeType":"YulFunctionCall","src":"4805:22:3"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4829:7:3"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"4784:20:3"},"nodeType":"YulFunctionCall","src":"4784:53:3"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4774:6:3"}]}]},{"nodeType":"YulBlock","src":"4857:118:3","statements":[{"nodeType":"YulVariableDeclaration","src":"4872:16:3","value":{"kind":"number","nodeType":"YulLiteral","src":"4886:2:3","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4876:6:3","type":""}]},{"nodeType":"YulAssignment","src":"4902:63:3","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4937:9:3"},{"name":"offset","nodeType":"YulIdentifier","src":"4948:6:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4933:3:3"},"nodeType":"YulFunctionCall","src":"4933:22:3"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4957:7:3"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"4912:20:3"},"nodeType":"YulFunctionCall","src":"4912:53:3"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4902:6:3"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4553:9:3","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4564:7:3","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4576:6:3","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4584:6:3","type":""}],"src":"4508:474:3"},{"body":{"nodeType":"YulBlock","src":"5046:40:3","statements":[{"nodeType":"YulAssignment","src":"5057:22:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5073:5:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5067:5:3"},"nodeType":"YulFunctionCall","src":"5067:12:3"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5057:6:3"}]}]},"name":"array_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5029:5:3","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5039:6:3","type":""}],"src":"4988:98:3"},{"body":{"nodeType":"YulBlock","src":"5177:73:3","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5194:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"5199:6:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5187:6:3"},"nodeType":"YulFunctionCall","src":"5187:19:3"},"nodeType":"YulExpressionStatement","src":"5187:19:3"},{"nodeType":"YulAssignment","src":"5215:29:3","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5234:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"5239:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5230:3:3"},"nodeType":"YulFunctionCall","src":"5230:14:3"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"5215:11:3"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5149:3:3","type":""},{"name":"length","nodeType":"YulTypedName","src":"5154:6:3","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"5165:11:3","type":""}],"src":"5092:158:3"},{"body":{"nodeType":"YulBlock","src":"5318:184:3","statements":[{"nodeType":"YulVariableDeclaration","src":"5328:10:3","value":{"kind":"number","nodeType":"YulLiteral","src":"5337:1:3","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5332:1:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"5397:63:3","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5422:3:3"},{"name":"i","nodeType":"YulIdentifier","src":"5427:1:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5418:3:3"},"nodeType":"YulFunctionCall","src":"5418:11:3"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5441:3:3"},{"name":"i","nodeType":"YulIdentifier","src":"5446:1:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5437:3:3"},"nodeType":"YulFunctionCall","src":"5437:11:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5431:5:3"},"nodeType":"YulFunctionCall","src":"5431:18:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5411:6:3"},"nodeType":"YulFunctionCall","src":"5411:39:3"},"nodeType":"YulExpressionStatement","src":"5411:39:3"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5358:1:3"},{"name":"length","nodeType":"YulIdentifier","src":"5361:6:3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5355:2:3"},"nodeType":"YulFunctionCall","src":"5355:13:3"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5369:19:3","statements":[{"nodeType":"YulAssignment","src":"5371:15:3","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5380:1:3"},{"kind":"number","nodeType":"YulLiteral","src":"5383:2:3","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5376:3:3"},"nodeType":"YulFunctionCall","src":"5376:10:3"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5371:1:3"}]}]},"pre":{"nodeType":"YulBlock","src":"5351:3:3","statements":[]},"src":"5347:113:3"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5480:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"5485:6:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5476:3:3"},"nodeType":"YulFunctionCall","src":"5476:16:3"},{"kind":"number","nodeType":"YulLiteral","src":"5494:1:3","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5469:6:3"},"nodeType":"YulFunctionCall","src":"5469:27:3"},"nodeType":"YulExpressionStatement","src":"5469:27:3"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"5300:3:3","type":""},{"name":"dst","nodeType":"YulTypedName","src":"5305:3:3","type":""},{"name":"length","nodeType":"YulTypedName","src":"5310:6:3","type":""}],"src":"5256:246:3"},{"body":{"nodeType":"YulBlock","src":"5556:54:3","statements":[{"nodeType":"YulAssignment","src":"5566:38:3","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5584:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"5591:2:3","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5580:3:3"},"nodeType":"YulFunctionCall","src":"5580:14:3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5600:2:3","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5596:3:3"},"nodeType":"YulFunctionCall","src":"5596:7:3"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5576:3:3"},"nodeType":"YulFunctionCall","src":"5576:28:3"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"5566:6:3"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5539:5:3","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"5549:6:3","type":""}],"src":"5508:102:3"},{"body":{"nodeType":"YulBlock","src":"5696:273:3","statements":[{"nodeType":"YulVariableDeclaration","src":"5706:52:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5752:5:3"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"5720:31:3"},"nodeType":"YulFunctionCall","src":"5720:38:3"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5710:6:3","type":""}]},{"nodeType":"YulAssignment","src":"5767:67:3","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5822:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"5827:6:3"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"5774:47:3"},"nodeType":"YulFunctionCall","src":"5774:60:3"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"5767:3:3"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5882:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"5889:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5878:3:3"},"nodeType":"YulFunctionCall","src":"5878:16:3"},{"name":"pos","nodeType":"YulIdentifier","src":"5896:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"5901:6:3"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"5843:34:3"},"nodeType":"YulFunctionCall","src":"5843:65:3"},"nodeType":"YulExpressionStatement","src":"5843:65:3"},{"nodeType":"YulAssignment","src":"5917:46:3","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5928:3:3"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5955:6:3"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"5933:21:3"},"nodeType":"YulFunctionCall","src":"5933:29:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5924:3:3"},"nodeType":"YulFunctionCall","src":"5924:39:3"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5917:3:3"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5677:5:3","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5684:3:3","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5692:3:3","type":""}],"src":"5616:353:3"},{"body":{"nodeType":"YulBlock","src":"6030:53:3","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6047:3:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6070:5:3"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"6052:17:3"},"nodeType":"YulFunctionCall","src":"6052:24:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6040:6:3"},"nodeType":"YulFunctionCall","src":"6040:37:3"},"nodeType":"YulExpressionStatement","src":"6040:37:3"}]},"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6018:5:3","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6025:3:3","type":""}],"src":"5975:108:3"},{"body":{"nodeType":"YulBlock","src":"6313:1044:3","statements":[{"nodeType":"YulVariableDeclaration","src":"6323:26:3","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6339:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"6344:4:3","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6335:3:3"},"nodeType":"YulFunctionCall","src":"6335:14:3"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"6327:4:3","type":""}]},{"nodeType":"YulBlock","src":"6359:234:3","statements":[{"nodeType":"YulVariableDeclaration","src":"6395:43:3","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6425:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"6432:4:3","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6421:3:3"},"nodeType":"YulFunctionCall","src":"6421:16:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6415:5:3"},"nodeType":"YulFunctionCall","src":"6415:23:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6399:12:3","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6463:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"6468:4:3","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6459:3:3"},"nodeType":"YulFunctionCall","src":"6459:14:3"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"6479:4:3"},{"name":"pos","nodeType":"YulIdentifier","src":"6485:3:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6475:3:3"},"nodeType":"YulFunctionCall","src":"6475:14:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6452:6:3"},"nodeType":"YulFunctionCall","src":"6452:38:3"},"nodeType":"YulExpressionStatement","src":"6452:38:3"},{"nodeType":"YulAssignment","src":"6503:79:3","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6563:12:3"},{"name":"tail","nodeType":"YulIdentifier","src":"6577:4:3"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"6511:51:3"},"nodeType":"YulFunctionCall","src":"6511:71:3"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6503:4:3"}]}]},{"nodeType":"YulBlock","src":"6603:165:3","statements":[{"nodeType":"YulVariableDeclaration","src":"6639:43:3","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6669:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"6676:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6665:3:3"},"nodeType":"YulFunctionCall","src":"6665:16:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6659:5:3"},"nodeType":"YulFunctionCall","src":"6659:23:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6643:12:3","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6729:12:3"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6747:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"6752:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6743:3:3"},"nodeType":"YulFunctionCall","src":"6743:14:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"6695:33:3"},"nodeType":"YulFunctionCall","src":"6695:63:3"},"nodeType":"YulExpressionStatement","src":"6695:63:3"}]},{"nodeType":"YulBlock","src":"6778:178:3","statements":[{"nodeType":"YulVariableDeclaration","src":"6827:43:3","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6857:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"6864:4:3","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6853:3:3"},"nodeType":"YulFunctionCall","src":"6853:16:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6847:5:3"},"nodeType":"YulFunctionCall","src":"6847:23:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6831:12:3","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6917:12:3"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6935:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"6940:4:3","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6931:3:3"},"nodeType":"YulFunctionCall","src":"6931:14:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"6883:33:3"},"nodeType":"YulFunctionCall","src":"6883:63:3"},"nodeType":"YulExpressionStatement","src":"6883:63:3"}]},{"nodeType":"YulBlock","src":"6966:180:3","statements":[{"nodeType":"YulVariableDeclaration","src":"7017:43:3","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7047:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"7054:4:3","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7043:3:3"},"nodeType":"YulFunctionCall","src":"7043:16:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7037:5:3"},"nodeType":"YulFunctionCall","src":"7037:23:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"7021:12:3","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"7107:12:3"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7125:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"7130:4:3","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7121:3:3"},"nodeType":"YulFunctionCall","src":"7121:14:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"7073:33:3"},"nodeType":"YulFunctionCall","src":"7073:63:3"},"nodeType":"YulExpressionStatement","src":"7073:63:3"}]},{"nodeType":"YulBlock","src":"7156:174:3","statements":[{"nodeType":"YulVariableDeclaration","src":"7201:43:3","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7231:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"7238:4:3","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7227:3:3"},"nodeType":"YulFunctionCall","src":"7227:16:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7221:5:3"},"nodeType":"YulFunctionCall","src":"7221:23:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"7205:12:3","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"7291:12:3"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7309:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"7314:4:3","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7305:3:3"},"nodeType":"YulFunctionCall","src":"7305:14:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"7257:33:3"},"nodeType":"YulFunctionCall","src":"7257:63:3"},"nodeType":"YulExpressionStatement","src":"7257:63:3"}]},{"nodeType":"YulAssignment","src":"7340:11:3","value":{"name":"tail","nodeType":"YulIdentifier","src":"7347:4:3"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7340:3:3"}]}]},"name":"abi_encode_t_struct$_AggregateData_$141_memory_ptr_to_t_struct$_AggregateData_$141_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6292:5:3","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6299:3:3","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6308:3:3","type":""}],"src":"6179:1178:3"},{"body":{"nodeType":"YulBlock","src":"7521:235:3","statements":[{"nodeType":"YulAssignment","src":"7531:26:3","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7543:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"7554:2:3","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7539:3:3"},"nodeType":"YulFunctionCall","src":"7539:18:3"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7531:4:3"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7578:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"7589:1:3","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7574:3:3"},"nodeType":"YulFunctionCall","src":"7574:17:3"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"7597:4:3"},{"name":"headStart","nodeType":"YulIdentifier","src":"7603:9:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7593:3:3"},"nodeType":"YulFunctionCall","src":"7593:20:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7567:6:3"},"nodeType":"YulFunctionCall","src":"7567:47:3"},"nodeType":"YulExpressionStatement","src":"7567:47:3"},{"nodeType":"YulAssignment","src":"7623:126:3","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7735:6:3"},{"name":"tail","nodeType":"YulIdentifier","src":"7744:4:3"}],"functionName":{"name":"abi_encode_t_struct$_AggregateData_$141_memory_ptr_to_t_struct$_AggregateData_$141_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"7631:103:3"},"nodeType":"YulFunctionCall","src":"7631:118:3"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7623:4:3"}]}]},"name":"abi_encode_tuple_t_struct$_AggregateData_$141_memory_ptr__to_t_struct$_AggregateData_$141_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7493:9:3","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7505:6:3","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7516:4:3","type":""}],"src":"7363:393:3"},{"body":{"nodeType":"YulBlock","src":"7857:73:3","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7874:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"7879:6:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7867:6:3"},"nodeType":"YulFunctionCall","src":"7867:19:3"},"nodeType":"YulExpressionStatement","src":"7867:19:3"},{"nodeType":"YulAssignment","src":"7895:29:3","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7914:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"7919:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7910:3:3"},"nodeType":"YulFunctionCall","src":"7910:14:3"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"7895:11:3"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"7829:3:3","type":""},{"name":"length","nodeType":"YulTypedName","src":"7834:6:3","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"7845:11:3","type":""}],"src":"7762:168:3"},{"body":{"nodeType":"YulBlock","src":"8026:283:3","statements":[{"nodeType":"YulVariableDeclaration","src":"8036:52:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8082:5:3"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"8050:31:3"},"nodeType":"YulFunctionCall","src":"8050:38:3"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8040:6:3","type":""}]},{"nodeType":"YulAssignment","src":"8097:77:3","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8162:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"8167:6:3"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"8104:57:3"},"nodeType":"YulFunctionCall","src":"8104:70:3"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"8097:3:3"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8222:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"8229:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8218:3:3"},"nodeType":"YulFunctionCall","src":"8218:16:3"},{"name":"pos","nodeType":"YulIdentifier","src":"8236:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"8241:6:3"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"8183:34:3"},"nodeType":"YulFunctionCall","src":"8183:65:3"},"nodeType":"YulExpressionStatement","src":"8183:65:3"},{"nodeType":"YulAssignment","src":"8257:46:3","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8268:3:3"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8295:6:3"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"8273:21:3"},"nodeType":"YulFunctionCall","src":"8273:29:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8264:3:3"},"nodeType":"YulFunctionCall","src":"8264:39:3"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"8257:3:3"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8007:5:3","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8014:3:3","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8022:3:3","type":""}],"src":"7936:373:3"},{"body":{"nodeType":"YulBlock","src":"8380:53:3","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8397:3:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8420:5:3"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"8402:17:3"},"nodeType":"YulFunctionCall","src":"8402:24:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8390:6:3"},"nodeType":"YulFunctionCall","src":"8390:37:3"},"nodeType":"YulExpressionStatement","src":"8390:37:3"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8368:5:3","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8375:3:3","type":""}],"src":"8315:118:3"},{"body":{"nodeType":"YulBlock","src":"8667:523:3","statements":[{"nodeType":"YulAssignment","src":"8677:27:3","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8689:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"8700:3:3","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8685:3:3"},"nodeType":"YulFunctionCall","src":"8685:19:3"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8677:4:3"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8725:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"8736:1:3","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8721:3:3"},"nodeType":"YulFunctionCall","src":"8721:17:3"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"8744:4:3"},{"name":"headStart","nodeType":"YulIdentifier","src":"8750:9:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8740:3:3"},"nodeType":"YulFunctionCall","src":"8740:20:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8714:6:3"},"nodeType":"YulFunctionCall","src":"8714:47:3"},"nodeType":"YulExpressionStatement","src":"8714:47:3"},{"nodeType":"YulAssignment","src":"8770:84:3","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8840:6:3"},{"name":"tail","nodeType":"YulIdentifier","src":"8849:4:3"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"8778:61:3"},"nodeType":"YulFunctionCall","src":"8778:76:3"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8770:4:3"}]},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8908:6:3"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8921:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"8932:2:3","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8917:3:3"},"nodeType":"YulFunctionCall","src":"8917:18:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"8864:43:3"},"nodeType":"YulFunctionCall","src":"8864:72:3"},"nodeType":"YulExpressionStatement","src":"8864:72:3"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8990:6:3"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9003:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"9014:2:3","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8999:3:3"},"nodeType":"YulFunctionCall","src":"8999:18:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"8946:43:3"},"nodeType":"YulFunctionCall","src":"8946:72:3"},"nodeType":"YulExpressionStatement","src":"8946:72:3"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9072:6:3"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9085:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"9096:2:3","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9081:3:3"},"nodeType":"YulFunctionCall","src":"9081:18:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"9028:43:3"},"nodeType":"YulFunctionCall","src":"9028:72:3"},"nodeType":"YulExpressionStatement","src":"9028:72:3"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"9154:6:3"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9167:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"9178:3:3","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9163:3:3"},"nodeType":"YulFunctionCall","src":"9163:19:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"9110:43:3"},"nodeType":"YulFunctionCall","src":"9110:73:3"},"nodeType":"YulExpressionStatement","src":"9110:73:3"}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_uint256_t_uint256_t_uint256_t_uint256__to_t_bytes_memory_ptr_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8607:9:3","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8619:6:3","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8627:6:3","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8635:6:3","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8643:6:3","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8651:6:3","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8662:4:3","type":""}],"src":"8439:751:3"},{"body":{"nodeType":"YulBlock","src":"9262:263:3","statements":[{"body":{"nodeType":"YulBlock","src":"9308:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"9310:77:3"},"nodeType":"YulFunctionCall","src":"9310:79:3"},"nodeType":"YulExpressionStatement","src":"9310:79:3"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9283:7:3"},{"name":"headStart","nodeType":"YulIdentifier","src":"9292:9:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9279:3:3"},"nodeType":"YulFunctionCall","src":"9279:23:3"},{"kind":"number","nodeType":"YulLiteral","src":"9304:2:3","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9275:3:3"},"nodeType":"YulFunctionCall","src":"9275:32:3"},"nodeType":"YulIf","src":"9272:119:3"},{"nodeType":"YulBlock","src":"9401:117:3","statements":[{"nodeType":"YulVariableDeclaration","src":"9416:15:3","value":{"kind":"number","nodeType":"YulLiteral","src":"9430:1:3","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9420:6:3","type":""}]},{"nodeType":"YulAssignment","src":"9445:63:3","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9480:9:3"},{"name":"offset","nodeType":"YulIdentifier","src":"9491:6:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9476:3:3"},"nodeType":"YulFunctionCall","src":"9476:22:3"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9500:7:3"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"9455:20:3"},"nodeType":"YulFunctionCall","src":"9455:53:3"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9445:6:3"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9232:9:3","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9243:7:3","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9255:6:3","type":""}],"src":"9196:329:3"},{"body":{"nodeType":"YulBlock","src":"9629:124:3","statements":[{"nodeType":"YulAssignment","src":"9639:26:3","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9651:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"9662:2:3","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9647:3:3"},"nodeType":"YulFunctionCall","src":"9647:18:3"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9639:4:3"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9719:6:3"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9732:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"9743:1:3","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9728:3:3"},"nodeType":"YulFunctionCall","src":"9728:17:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"9675:43:3"},"nodeType":"YulFunctionCall","src":"9675:71:3"},"nodeType":"YulExpressionStatement","src":"9675:71:3"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9601:9:3","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9613:6:3","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9624:4:3","type":""}],"src":"9531:222:3"},{"body":{"nodeType":"YulBlock","src":"9848:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9865:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9868:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9858:6:3"},"nodeType":"YulFunctionCall","src":"9858:12:3"},"nodeType":"YulExpressionStatement","src":"9858:12:3"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulFunctionDefinition","src":"9759:117:3"},{"body":{"nodeType":"YulBlock","src":"9910:152:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9927:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9930:77:3","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9920:6:3"},"nodeType":"YulFunctionCall","src":"9920:88:3"},"nodeType":"YulExpressionStatement","src":"9920:88:3"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10024:1:3","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10027:4:3","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10017:6:3"},"nodeType":"YulFunctionCall","src":"10017:15:3"},"nodeType":"YulExpressionStatement","src":"10017:15:3"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10048:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10051:4:3","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10041:6:3"},"nodeType":"YulFunctionCall","src":"10041:15:3"},"nodeType":"YulExpressionStatement","src":"10041:15:3"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"9882:180:3"},{"body":{"nodeType":"YulBlock","src":"10111:238:3","statements":[{"nodeType":"YulVariableDeclaration","src":"10121:58:3","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"10143:6:3"},{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"10173:4:3"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"10151:21:3"},"nodeType":"YulFunctionCall","src":"10151:27:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10139:3:3"},"nodeType":"YulFunctionCall","src":"10139:40:3"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"10125:10:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"10290:22:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"10292:16:3"},"nodeType":"YulFunctionCall","src":"10292:18:3"},"nodeType":"YulExpressionStatement","src":"10292:18:3"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"10233:10:3"},{"kind":"number","nodeType":"YulLiteral","src":"10245:18:3","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10230:2:3"},"nodeType":"YulFunctionCall","src":"10230:34:3"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"10269:10:3"},{"name":"memPtr","nodeType":"YulIdentifier","src":"10281:6:3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10266:2:3"},"nodeType":"YulFunctionCall","src":"10266:22:3"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"10227:2:3"},"nodeType":"YulFunctionCall","src":"10227:62:3"},"nodeType":"YulIf","src":"10224:88:3"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10328:2:3","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"10332:10:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10321:6:3"},"nodeType":"YulFunctionCall","src":"10321:22:3"},"nodeType":"YulExpressionStatement","src":"10321:22:3"}]},"name":"finalize_allocation","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"10097:6:3","type":""},{"name":"size","nodeType":"YulTypedName","src":"10105:4:3","type":""}],"src":"10068:281:3"},{"body":{"nodeType":"YulBlock","src":"10396:88:3","statements":[{"nodeType":"YulAssignment","src":"10406:30:3","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nodeType":"YulIdentifier","src":"10416:18:3"},"nodeType":"YulFunctionCall","src":"10416:20:3"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"10406:6:3"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"10465:6:3"},{"name":"size","nodeType":"YulIdentifier","src":"10473:4:3"}],"functionName":{"name":"finalize_allocation","nodeType":"YulIdentifier","src":"10445:19:3"},"nodeType":"YulFunctionCall","src":"10445:33:3"},"nodeType":"YulExpressionStatement","src":"10445:33:3"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"10380:4:3","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"10389:6:3","type":""}],"src":"10355:129:3"},{"body":{"nodeType":"YulBlock","src":"10556:241:3","statements":[{"body":{"nodeType":"YulBlock","src":"10661:22:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"10663:16:3"},"nodeType":"YulFunctionCall","src":"10663:18:3"},"nodeType":"YulExpressionStatement","src":"10663:18:3"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10633:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"10641:18:3","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10630:2:3"},"nodeType":"YulFunctionCall","src":"10630:30:3"},"nodeType":"YulIf","src":"10627:56:3"},{"nodeType":"YulAssignment","src":"10693:37:3","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10723:6:3"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"10701:21:3"},"nodeType":"YulFunctionCall","src":"10701:29:3"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"10693:4:3"}]},{"nodeType":"YulAssignment","src":"10767:23:3","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"10779:4:3"},{"kind":"number","nodeType":"YulLiteral","src":"10785:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10775:3:3"},"nodeType":"YulFunctionCall","src":"10775:15:3"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"10767:4:3"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"10540:6:3","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"10551:4:3","type":""}],"src":"10490:307:3"},{"body":{"nodeType":"YulBlock","src":"10867:82:3","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10890:3:3"},{"name":"src","nodeType":"YulIdentifier","src":"10895:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"10900:6:3"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"10877:12:3"},"nodeType":"YulFunctionCall","src":"10877:30:3"},"nodeType":"YulExpressionStatement","src":"10877:30:3"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10927:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"10932:6:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10923:3:3"},"nodeType":"YulFunctionCall","src":"10923:16:3"},{"kind":"number","nodeType":"YulLiteral","src":"10941:1:3","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10916:6:3"},"nodeType":"YulFunctionCall","src":"10916:27:3"},"nodeType":"YulExpressionStatement","src":"10916:27:3"}]},"name":"copy_calldata_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"10849:3:3","type":""},{"name":"dst","nodeType":"YulTypedName","src":"10854:3:3","type":""},{"name":"length","nodeType":"YulTypedName","src":"10859:6:3","type":""}],"src":"10803:146:3"},{"body":{"nodeType":"YulBlock","src":"11038:340:3","statements":[{"nodeType":"YulAssignment","src":"11048:74:3","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11114:6:3"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"11073:40:3"},"nodeType":"YulFunctionCall","src":"11073:48:3"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"11057:15:3"},"nodeType":"YulFunctionCall","src":"11057:65:3"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"11048:5:3"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"11138:5:3"},{"name":"length","nodeType":"YulIdentifier","src":"11145:6:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11131:6:3"},"nodeType":"YulFunctionCall","src":"11131:21:3"},"nodeType":"YulExpressionStatement","src":"11131:21:3"},{"nodeType":"YulVariableDeclaration","src":"11161:27:3","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"11176:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"11183:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11172:3:3"},"nodeType":"YulFunctionCall","src":"11172:16:3"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"11165:3:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"11226:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulIdentifier","src":"11228:77:3"},"nodeType":"YulFunctionCall","src":"11228:79:3"},"nodeType":"YulExpressionStatement","src":"11228:79:3"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11207:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"11212:6:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11203:3:3"},"nodeType":"YulFunctionCall","src":"11203:16:3"},{"name":"end","nodeType":"YulIdentifier","src":"11221:3:3"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11200:2:3"},"nodeType":"YulFunctionCall","src":"11200:25:3"},"nodeType":"YulIf","src":"11197:112:3"},{"expression":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11355:3:3"},{"name":"dst","nodeType":"YulIdentifier","src":"11360:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"11365:6:3"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"11318:36:3"},"nodeType":"YulFunctionCall","src":"11318:54:3"},"nodeType":"YulExpressionStatement","src":"11318:54:3"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"11011:3:3","type":""},{"name":"length","nodeType":"YulTypedName","src":"11016:6:3","type":""},{"name":"end","nodeType":"YulTypedName","src":"11024:3:3","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"11032:5:3","type":""}],"src":"10955:423:3"},{"body":{"nodeType":"YulBlock","src":"11458:277:3","statements":[{"body":{"nodeType":"YulBlock","src":"11507:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"11509:77:3"},"nodeType":"YulFunctionCall","src":"11509:79:3"},"nodeType":"YulExpressionStatement","src":"11509:79:3"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11486:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"11494:4:3","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11482:3:3"},"nodeType":"YulFunctionCall","src":"11482:17:3"},{"name":"end","nodeType":"YulIdentifier","src":"11501:3:3"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11478:3:3"},"nodeType":"YulFunctionCall","src":"11478:27:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11471:6:3"},"nodeType":"YulFunctionCall","src":"11471:35:3"},"nodeType":"YulIf","src":"11468:122:3"},{"nodeType":"YulVariableDeclaration","src":"11599:34:3","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11626:6:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11613:12:3"},"nodeType":"YulFunctionCall","src":"11613:20:3"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11603:6:3","type":""}]},{"nodeType":"YulAssignment","src":"11642:87:3","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11702:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"11710:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11698:3:3"},"nodeType":"YulFunctionCall","src":"11698:17:3"},{"name":"length","nodeType":"YulIdentifier","src":"11717:6:3"},{"name":"end","nodeType":"YulIdentifier","src":"11725:3:3"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"11651:46:3"},"nodeType":"YulFunctionCall","src":"11651:78:3"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"11642:5:3"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"11436:6:3","type":""},{"name":"end","nodeType":"YulTypedName","src":"11444:3:3","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"11452:5:3","type":""}],"src":"11397:338:3"},{"body":{"nodeType":"YulBlock","src":"11833:560:3","statements":[{"body":{"nodeType":"YulBlock","src":"11879:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"11881:77:3"},"nodeType":"YulFunctionCall","src":"11881:79:3"},"nodeType":"YulExpressionStatement","src":"11881:79:3"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11854:7:3"},{"name":"headStart","nodeType":"YulIdentifier","src":"11863:9:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11850:3:3"},"nodeType":"YulFunctionCall","src":"11850:23:3"},{"kind":"number","nodeType":"YulLiteral","src":"11875:2:3","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11846:3:3"},"nodeType":"YulFunctionCall","src":"11846:32:3"},"nodeType":"YulIf","src":"11843:119:3"},{"nodeType":"YulBlock","src":"11972:117:3","statements":[{"nodeType":"YulVariableDeclaration","src":"11987:15:3","value":{"kind":"number","nodeType":"YulLiteral","src":"12001:1:3","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11991:6:3","type":""}]},{"nodeType":"YulAssignment","src":"12016:63:3","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12051:9:3"},{"name":"offset","nodeType":"YulIdentifier","src":"12062:6:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12047:3:3"},"nodeType":"YulFunctionCall","src":"12047:22:3"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12071:7:3"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"12026:20:3"},"nodeType":"YulFunctionCall","src":"12026:53:3"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12016:6:3"}]}]},{"nodeType":"YulBlock","src":"12099:287:3","statements":[{"nodeType":"YulVariableDeclaration","src":"12114:46:3","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12145:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"12156:2:3","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12141:3:3"},"nodeType":"YulFunctionCall","src":"12141:18:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12128:12:3"},"nodeType":"YulFunctionCall","src":"12128:32:3"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12118:6:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"12207:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"12209:77:3"},"nodeType":"YulFunctionCall","src":"12209:79:3"},"nodeType":"YulExpressionStatement","src":"12209:79:3"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"12179:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"12187:18:3","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12176:2:3"},"nodeType":"YulFunctionCall","src":"12176:30:3"},"nodeType":"YulIf","src":"12173:117:3"},{"nodeType":"YulAssignment","src":"12304:72:3","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12348:9:3"},{"name":"offset","nodeType":"YulIdentifier","src":"12359:6:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12344:3:3"},"nodeType":"YulFunctionCall","src":"12344:22:3"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12368:7:3"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"12314:29:3"},"nodeType":"YulFunctionCall","src":"12314:62:3"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12304:6:3"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11795:9:3","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11806:7:3","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11818:6:3","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11826:6:3","type":""}],"src":"11741:652:3"},{"body":{"nodeType":"YulBlock","src":"12488:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12505:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12508:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12498:6:3"},"nodeType":"YulFunctionCall","src":"12498:12:3"},"nodeType":"YulExpressionStatement","src":"12498:12:3"}]},"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nodeType":"YulFunctionDefinition","src":"12399:117:3"},{"body":{"nodeType":"YulBlock","src":"12611:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12628:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12631:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12621:6:3"},"nodeType":"YulFunctionCall","src":"12621:12:3"},"nodeType":"YulExpressionStatement","src":"12621:12:3"}]},"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nodeType":"YulFunctionDefinition","src":"12522:117:3"},{"body":{"nodeType":"YulBlock","src":"12734:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12751:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12754:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12744:6:3"},"nodeType":"YulFunctionCall","src":"12744:12:3"},"nodeType":"YulExpressionStatement","src":"12744:12:3"}]},"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nodeType":"YulFunctionDefinition","src":"12645:117:3"},{"body":{"nodeType":"YulBlock","src":"12867:295:3","statements":[{"nodeType":"YulVariableDeclaration","src":"12877:51:3","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"12916:11:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12903:12:3"},"nodeType":"YulFunctionCall","src":"12903:25:3"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"12881:18:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"13022:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nodeType":"YulIdentifier","src":"13024:77:3"},"nodeType":"YulFunctionCall","src":"13024:79:3"},"nodeType":"YulExpressionStatement","src":"13024:79:3"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"12951:18:3"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"12979:12:3"},"nodeType":"YulFunctionCall","src":"12979:14:3"},{"name":"base_ref","nodeType":"YulIdentifier","src":"12995:8:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12975:3:3"},"nodeType":"YulFunctionCall","src":"12975:29:3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13010:4:3","type":"","value":"0xc0"},{"kind":"number","nodeType":"YulLiteral","src":"13016:1:3","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13006:3:3"},"nodeType":"YulFunctionCall","src":"13006:12:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12971:3:3"},"nodeType":"YulFunctionCall","src":"12971:48:3"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12947:3:3"},"nodeType":"YulFunctionCall","src":"12947:73:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12940:6:3"},"nodeType":"YulFunctionCall","src":"12940:81:3"},"nodeType":"YulIf","src":"12937:168:3"},{"nodeType":"YulAssignment","src":"13114:41:3","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"13126:8:3"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"13136:18:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13122:3:3"},"nodeType":"YulFunctionCall","src":"13122:33:3"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"13114:4:3"}]}]},"name":"access_calldata_tail_t_struct$_ReportData_$73_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"12836:8:3","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"12846:11:3","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"12862:4:3","type":""}],"src":"12768:394:3"},{"body":{"nodeType":"YulBlock","src":"13258:634:3","statements":[{"nodeType":"YulVariableDeclaration","src":"13268:51:3","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"13307:11:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13294:12:3"},"nodeType":"YulFunctionCall","src":"13294:25:3"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"13272:18:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"13413:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nodeType":"YulIdentifier","src":"13415:77:3"},"nodeType":"YulFunctionCall","src":"13415:79:3"},"nodeType":"YulExpressionStatement","src":"13415:79:3"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"13342:18:3"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"13370:12:3"},"nodeType":"YulFunctionCall","src":"13370:14:3"},{"name":"base_ref","nodeType":"YulIdentifier","src":"13386:8:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13366:3:3"},"nodeType":"YulFunctionCall","src":"13366:29:3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13401:4:3","type":"","value":"0x20"},{"kind":"number","nodeType":"YulLiteral","src":"13407:1:3","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13397:3:3"},"nodeType":"YulFunctionCall","src":"13397:12:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13362:3:3"},"nodeType":"YulFunctionCall","src":"13362:48:3"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13338:3:3"},"nodeType":"YulFunctionCall","src":"13338:73:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13331:6:3"},"nodeType":"YulFunctionCall","src":"13331:81:3"},"nodeType":"YulIf","src":"13328:168:3"},{"nodeType":"YulAssignment","src":"13505:41:3","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"13517:8:3"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"13527:18:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13513:3:3"},"nodeType":"YulFunctionCall","src":"13513:33:3"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"13505:4:3"}]},{"nodeType":"YulAssignment","src":"13556:28:3","value":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"13579:4:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13566:12:3"},"nodeType":"YulFunctionCall","src":"13566:18:3"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"13556:6:3"}]},{"body":{"nodeType":"YulBlock","src":"13627:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nodeType":"YulIdentifier","src":"13629:77:3"},"nodeType":"YulFunctionCall","src":"13629:79:3"},"nodeType":"YulExpressionStatement","src":"13629:79:3"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"13599:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"13607:18:3","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13596:2:3"},"nodeType":"YulFunctionCall","src":"13596:30:3"},"nodeType":"YulIf","src":"13593:117:3"},{"nodeType":"YulAssignment","src":"13719:21:3","value":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"13731:4:3"},{"kind":"number","nodeType":"YulLiteral","src":"13737:2:3","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13727:3:3"},"nodeType":"YulFunctionCall","src":"13727:13:3"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"13719:4:3"}]},{"body":{"nodeType":"YulBlock","src":"13802:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nodeType":"YulIdentifier","src":"13804:77:3"},"nodeType":"YulFunctionCall","src":"13804:79:3"},"nodeType":"YulExpressionStatement","src":"13804:79:3"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"13756:4:3"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"13766:12:3"},"nodeType":"YulFunctionCall","src":"13766:14:3"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"13786:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"13794:4:3","type":"","value":"0x01"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"13782:3:3"},"nodeType":"YulFunctionCall","src":"13782:17:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13762:3:3"},"nodeType":"YulFunctionCall","src":"13762:38:3"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"13752:3:3"},"nodeType":"YulFunctionCall","src":"13752:49:3"},"nodeType":"YulIf","src":"13749:136:3"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"13219:8:3","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"13229:11:3","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"13245:4:3","type":""},{"name":"length","nodeType":"YulTypedName","src":"13251:6:3","type":""}],"src":"13168:724:3"},{"body":{"nodeType":"YulBlock","src":"13926:152:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13943:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13946:77:3","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13936:6:3"},"nodeType":"YulFunctionCall","src":"13936:88:3"},"nodeType":"YulExpressionStatement","src":"13936:88:3"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14040:1:3","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14043:4:3","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14033:6:3"},"nodeType":"YulFunctionCall","src":"14033:15:3"},"nodeType":"YulExpressionStatement","src":"14033:15:3"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14064:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14067:4:3","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14057:6:3"},"nodeType":"YulFunctionCall","src":"14057:15:3"},"nodeType":"YulExpressionStatement","src":"14057:15:3"}]},"name":"panic_error_0x22","nodeType":"YulFunctionDefinition","src":"13898:180:3"},{"body":{"nodeType":"YulBlock","src":"14135:269:3","statements":[{"nodeType":"YulAssignment","src":"14145:22:3","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14159:4:3"},{"kind":"number","nodeType":"YulLiteral","src":"14165:1:3","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14155:3:3"},"nodeType":"YulFunctionCall","src":"14155:12:3"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14145:6:3"}]},{"nodeType":"YulVariableDeclaration","src":"14176:38:3","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14206:4:3"},{"kind":"number","nodeType":"YulLiteral","src":"14212:1:3","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14202:3:3"},"nodeType":"YulFunctionCall","src":"14202:12:3"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"14180:18:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"14253:51:3","statements":[{"nodeType":"YulAssignment","src":"14267:27:3","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14281:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"14289:4:3","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14277:3:3"},"nodeType":"YulFunctionCall","src":"14277:17:3"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14267:6:3"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14233:18:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14226:6:3"},"nodeType":"YulFunctionCall","src":"14226:26:3"},"nodeType":"YulIf","src":"14223:81:3"},{"body":{"nodeType":"YulBlock","src":"14356:42:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nodeType":"YulIdentifier","src":"14370:16:3"},"nodeType":"YulFunctionCall","src":"14370:18:3"},"nodeType":"YulExpressionStatement","src":"14370:18:3"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14320:18:3"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14343:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"14351:2:3","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14340:2:3"},"nodeType":"YulFunctionCall","src":"14340:14:3"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14317:2:3"},"nodeType":"YulFunctionCall","src":"14317:38:3"},"nodeType":"YulIf","src":"14314:84:3"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"14119:4:3","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14128:6:3","type":""}],"src":"14084:320:3"},{"body":{"nodeType":"YulBlock","src":"14463:87:3","statements":[{"nodeType":"YulAssignment","src":"14473:11:3","value":{"name":"ptr","nodeType":"YulIdentifier","src":"14481:3:3"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"14473:4:3"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14501:1:3","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"14504:3:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14494:6:3"},"nodeType":"YulFunctionCall","src":"14494:14:3"},"nodeType":"YulExpressionStatement","src":"14494:14:3"},{"nodeType":"YulAssignment","src":"14517:26:3","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14535:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14538:4:3","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"14525:9:3"},"nodeType":"YulFunctionCall","src":"14525:18:3"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"14517:4:3"}]}]},"name":"array_dataslot_t_bytes_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"14450:3:3","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"14458:4:3","type":""}],"src":"14410:140:3"},{"body":{"nodeType":"YulBlock","src":"14600:49:3","statements":[{"nodeType":"YulAssignment","src":"14610:33:3","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14628:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"14635:2:3","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14624:3:3"},"nodeType":"YulFunctionCall","src":"14624:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"14640:2:3","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14620:3:3"},"nodeType":"YulFunctionCall","src":"14620:23:3"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"14610:6:3"}]}]},"name":"divide_by_32_ceil","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14583:5:3","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"14593:6:3","type":""}],"src":"14556:93:3"},{"body":{"nodeType":"YulBlock","src":"14708:54:3","statements":[{"nodeType":"YulAssignment","src":"14718:37:3","value":{"arguments":[{"name":"bits","nodeType":"YulIdentifier","src":"14743:4:3"},{"name":"value","nodeType":"YulIdentifier","src":"14749:5:3"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14739:3:3"},"nodeType":"YulFunctionCall","src":"14739:16:3"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"14718:8:3"}]}]},"name":"shift_left_dynamic","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nodeType":"YulTypedName","src":"14683:4:3","type":""},{"name":"value","nodeType":"YulTypedName","src":"14689:5:3","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"14699:8:3","type":""}],"src":"14655:107:3"},{"body":{"nodeType":"YulBlock","src":"14844:317:3","statements":[{"nodeType":"YulVariableDeclaration","src":"14854:35:3","value":{"arguments":[{"name":"shiftBytes","nodeType":"YulIdentifier","src":"14875:10:3"},{"kind":"number","nodeType":"YulLiteral","src":"14887:1:3","type":"","value":"8"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"14871:3:3"},"nodeType":"YulFunctionCall","src":"14871:18:3"},"variables":[{"name":"shiftBits","nodeType":"YulTypedName","src":"14858:9:3","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14898:109:3","value":{"arguments":[{"name":"shiftBits","nodeType":"YulIdentifier","src":"14929:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"14940:66:3","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nodeType":"YulIdentifier","src":"14910:18:3"},"nodeType":"YulFunctionCall","src":"14910:97:3"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"14902:4:3","type":""}]},{"nodeType":"YulAssignment","src":"15016:51:3","value":{"arguments":[{"name":"shiftBits","nodeType":"YulIdentifier","src":"15047:9:3"},{"name":"toInsert","nodeType":"YulIdentifier","src":"15058:8:3"}],"functionName":{"name":"shift_left_dynamic","nodeType":"YulIdentifier","src":"15028:18:3"},"nodeType":"YulFunctionCall","src":"15028:39:3"},"variableNames":[{"name":"toInsert","nodeType":"YulIdentifier","src":"15016:8:3"}]},{"nodeType":"YulAssignment","src":"15076:30:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15089:5:3"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"15100:4:3"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15096:3:3"},"nodeType":"YulFunctionCall","src":"15096:9:3"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15085:3:3"},"nodeType":"YulFunctionCall","src":"15085:21:3"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"15076:5:3"}]},{"nodeType":"YulAssignment","src":"15115:40:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15128:5:3"},{"arguments":[{"name":"toInsert","nodeType":"YulIdentifier","src":"15139:8:3"},{"name":"mask","nodeType":"YulIdentifier","src":"15149:4:3"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15135:3:3"},"nodeType":"YulFunctionCall","src":"15135:19:3"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"15125:2:3"},"nodeType":"YulFunctionCall","src":"15125:30:3"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"15115:6:3"}]}]},"name":"update_byte_slice_dynamic32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14805:5:3","type":""},{"name":"shiftBytes","nodeType":"YulTypedName","src":"14812:10:3","type":""},{"name":"toInsert","nodeType":"YulTypedName","src":"14824:8:3","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"14837:6:3","type":""}],"src":"14768:393:3"},{"body":{"nodeType":"YulBlock","src":"15199:28:3","statements":[{"nodeType":"YulAssignment","src":"15209:12:3","value":{"name":"value","nodeType":"YulIdentifier","src":"15216:5:3"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"15209:3:3"}]}]},"name":"identity","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15185:5:3","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"15195:3:3","type":""}],"src":"15167:60:3"},{"body":{"nodeType":"YulBlock","src":"15293:82:3","statements":[{"nodeType":"YulAssignment","src":"15303:66:3","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15361:5:3"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"15343:17:3"},"nodeType":"YulFunctionCall","src":"15343:24:3"}],"functionName":{"name":"identity","nodeType":"YulIdentifier","src":"15334:8:3"},"nodeType":"YulFunctionCall","src":"15334:34:3"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"15316:17:3"},"nodeType":"YulFunctionCall","src":"15316:53:3"},"variableNames":[{"name":"converted","nodeType":"YulIdentifier","src":"15303:9:3"}]}]},"name":"convert_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15273:5:3","type":""}],"returnVariables":[{"name":"converted","nodeType":"YulTypedName","src":"15283:9:3","type":""}],"src":"15233:142:3"},{"body":{"nodeType":"YulBlock","src":"15428:28:3","statements":[{"nodeType":"YulAssignment","src":"15438:12:3","value":{"name":"value","nodeType":"YulIdentifier","src":"15445:5:3"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"15438:3:3"}]}]},"name":"prepare_store_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15414:5:3","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"15424:3:3","type":""}],"src":"15381:75:3"},{"body":{"nodeType":"YulBlock","src":"15538:193:3","statements":[{"nodeType":"YulVariableDeclaration","src":"15548:63:3","value":{"arguments":[{"name":"value_0","nodeType":"YulIdentifier","src":"15603:7:3"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"15572:30:3"},"nodeType":"YulFunctionCall","src":"15572:39:3"},"variables":[{"name":"convertedValue_0","nodeType":"YulTypedName","src":"15552:16:3","type":""}]},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15627:4:3"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15667:4:3"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"15661:5:3"},"nodeType":"YulFunctionCall","src":"15661:11:3"},{"name":"offset","nodeType":"YulIdentifier","src":"15674:6:3"},{"arguments":[{"name":"convertedValue_0","nodeType":"YulIdentifier","src":"15706:16:3"}],"functionName":{"name":"prepare_store_t_uint256","nodeType":"YulIdentifier","src":"15682:23:3"},"nodeType":"YulFunctionCall","src":"15682:41:3"}],"functionName":{"name":"update_byte_slice_dynamic32","nodeType":"YulIdentifier","src":"15633:27:3"},"nodeType":"YulFunctionCall","src":"15633:91:3"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"15620:6:3"},"nodeType":"YulFunctionCall","src":"15620:105:3"},"nodeType":"YulExpressionStatement","src":"15620:105:3"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"15515:4:3","type":""},{"name":"offset","nodeType":"YulTypedName","src":"15521:6:3","type":""},{"name":"value_0","nodeType":"YulTypedName","src":"15529:7:3","type":""}],"src":"15462:269:3"},{"body":{"nodeType":"YulBlock","src":"15786:24:3","statements":[{"nodeType":"YulAssignment","src":"15796:8:3","value":{"kind":"number","nodeType":"YulLiteral","src":"15803:1:3","type":"","value":"0"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"15796:3:3"}]}]},"name":"zero_value_for_split_t_uint256","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"15782:3:3","type":""}],"src":"15737:73:3"},{"body":{"nodeType":"YulBlock","src":"15869:136:3","statements":[{"nodeType":"YulVariableDeclaration","src":"15879:46:3","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nodeType":"YulIdentifier","src":"15893:30:3"},"nodeType":"YulFunctionCall","src":"15893:32:3"},"variables":[{"name":"zero_0","nodeType":"YulTypedName","src":"15883:6:3","type":""}]},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15978:4:3"},{"name":"offset","nodeType":"YulIdentifier","src":"15984:6:3"},{"name":"zero_0","nodeType":"YulIdentifier","src":"15992:6:3"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"15934:43:3"},"nodeType":"YulFunctionCall","src":"15934:65:3"},"nodeType":"YulExpressionStatement","src":"15934:65:3"}]},"name":"storage_set_to_zero_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"15855:4:3","type":""},{"name":"offset","nodeType":"YulTypedName","src":"15861:6:3","type":""}],"src":"15816:189:3"},{"body":{"nodeType":"YulBlock","src":"16061:136:3","statements":[{"body":{"nodeType":"YulBlock","src":"16128:63:3","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"16172:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"16179:1:3","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nodeType":"YulIdentifier","src":"16142:29:3"},"nodeType":"YulFunctionCall","src":"16142:39:3"},"nodeType":"YulExpressionStatement","src":"16142:39:3"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"16081:5:3"},{"name":"end","nodeType":"YulIdentifier","src":"16088:3:3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16078:2:3"},"nodeType":"YulFunctionCall","src":"16078:14:3"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"16093:26:3","statements":[{"nodeType":"YulAssignment","src":"16095:22:3","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"16108:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"16115:1:3","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16104:3:3"},"nodeType":"YulFunctionCall","src":"16104:13:3"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"16095:5:3"}]}]},"pre":{"nodeType":"YulBlock","src":"16075:2:3","statements":[]},"src":"16071:120:3"}]},"name":"clear_storage_range_t_bytes1","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"16049:5:3","type":""},{"name":"end","nodeType":"YulTypedName","src":"16056:3:3","type":""}],"src":"16011:186:3"},{"body":{"nodeType":"YulBlock","src":"16281:463:3","statements":[{"body":{"nodeType":"YulBlock","src":"16307:430:3","statements":[{"nodeType":"YulVariableDeclaration","src":"16321:53:3","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"16368:5:3"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nodeType":"YulIdentifier","src":"16337:30:3"},"nodeType":"YulFunctionCall","src":"16337:37:3"},"variables":[{"name":"dataArea","nodeType":"YulTypedName","src":"16325:8:3","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16387:63:3","value":{"arguments":[{"name":"dataArea","nodeType":"YulIdentifier","src":"16410:8:3"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"16438:10:3"}],"functionName":{"name":"divide_by_32_ceil","nodeType":"YulIdentifier","src":"16420:17:3"},"nodeType":"YulFunctionCall","src":"16420:29:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16406:3:3"},"nodeType":"YulFunctionCall","src":"16406:44:3"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"16391:11:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"16607:27:3","statements":[{"nodeType":"YulAssignment","src":"16609:23:3","value":{"name":"dataArea","nodeType":"YulIdentifier","src":"16624:8:3"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"16609:11:3"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"16591:10:3"},{"kind":"number","nodeType":"YulLiteral","src":"16603:2:3","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16588:2:3"},"nodeType":"YulFunctionCall","src":"16588:18:3"},"nodeType":"YulIf","src":"16585:49:3"},{"expression":{"arguments":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"16676:11:3"},{"arguments":[{"name":"dataArea","nodeType":"YulIdentifier","src":"16693:8:3"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"16721:3:3"}],"functionName":{"name":"divide_by_32_ceil","nodeType":"YulIdentifier","src":"16703:17:3"},"nodeType":"YulFunctionCall","src":"16703:22:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16689:3:3"},"nodeType":"YulFunctionCall","src":"16689:37:3"}],"functionName":{"name":"clear_storage_range_t_bytes1","nodeType":"YulIdentifier","src":"16647:28:3"},"nodeType":"YulFunctionCall","src":"16647:80:3"},"nodeType":"YulExpressionStatement","src":"16647:80:3"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"16298:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"16303:2:3","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16295:2:3"},"nodeType":"YulFunctionCall","src":"16295:11:3"},"nodeType":"YulIf","src":"16292:445:3"}]},"name":"clean_up_bytearray_end_slots_t_bytes_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"16257:5:3","type":""},{"name":"len","nodeType":"YulTypedName","src":"16264:3:3","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"16269:10:3","type":""}],"src":"16203:541:3"},{"body":{"nodeType":"YulBlock","src":"16813:54:3","statements":[{"nodeType":"YulAssignment","src":"16823:37:3","value":{"arguments":[{"name":"bits","nodeType":"YulIdentifier","src":"16848:4:3"},{"name":"value","nodeType":"YulIdentifier","src":"16854:5:3"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"16844:3:3"},"nodeType":"YulFunctionCall","src":"16844:16:3"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"16823:8:3"}]}]},"name":"shift_right_unsigned_dynamic","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nodeType":"YulTypedName","src":"16788:4:3","type":""},{"name":"value","nodeType":"YulTypedName","src":"16794:5:3","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"16804:8:3","type":""}],"src":"16750:117:3"},{"body":{"nodeType":"YulBlock","src":"16924:118:3","statements":[{"nodeType":"YulVariableDeclaration","src":"16934:68:3","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16983:1:3","type":"","value":"8"},{"name":"bytes","nodeType":"YulIdentifier","src":"16986:5:3"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"16979:3:3"},"nodeType":"YulFunctionCall","src":"16979:13:3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16998:1:3","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"16994:3:3"},"nodeType":"YulFunctionCall","src":"16994:6:3"}],"functionName":{"name":"shift_right_unsigned_dynamic","nodeType":"YulIdentifier","src":"16950:28:3"},"nodeType":"YulFunctionCall","src":"16950:51:3"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"16946:3:3"},"nodeType":"YulFunctionCall","src":"16946:56:3"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"16938:4:3","type":""}]},{"nodeType":"YulAssignment","src":"17011:25:3","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"17025:4:3"},{"name":"mask","nodeType":"YulIdentifier","src":"17031:4:3"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17021:3:3"},"nodeType":"YulFunctionCall","src":"17021:15:3"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"17011:6:3"}]}]},"name":"mask_bytes_dynamic","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"16901:4:3","type":""},{"name":"bytes","nodeType":"YulTypedName","src":"16907:5:3","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"16917:6:3","type":""}],"src":"16873:169:3"},{"body":{"nodeType":"YulBlock","src":"17128:214:3","statements":[{"nodeType":"YulAssignment","src":"17261:37:3","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"17288:4:3"},{"name":"len","nodeType":"YulIdentifier","src":"17294:3:3"}],"functionName":{"name":"mask_bytes_dynamic","nodeType":"YulIdentifier","src":"17269:18:3"},"nodeType":"YulFunctionCall","src":"17269:29:3"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"17261:4:3"}]},{"nodeType":"YulAssignment","src":"17307:29:3","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"17318:4:3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17328:1:3","type":"","value":"2"},{"name":"len","nodeType":"YulIdentifier","src":"17331:3:3"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"17324:3:3"},"nodeType":"YulFunctionCall","src":"17324:11:3"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"17315:2:3"},"nodeType":"YulFunctionCall","src":"17315:21:3"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"17307:4:3"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"17109:4:3","type":""},{"name":"len","nodeType":"YulTypedName","src":"17115:3:3","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"17123:4:3","type":""}],"src":"17047:295:3"},{"body":{"nodeType":"YulBlock","src":"17437:1300:3","statements":[{"nodeType":"YulVariableDeclaration","src":"17448:50:3","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"17494:3:3"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"17462:31:3"},"nodeType":"YulFunctionCall","src":"17462:36:3"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"17452:6:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"17583:22:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"17585:16:3"},"nodeType":"YulFunctionCall","src":"17585:18:3"},"nodeType":"YulExpressionStatement","src":"17585:18:3"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"17555:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"17563:18:3","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17552:2:3"},"nodeType":"YulFunctionCall","src":"17552:30:3"},"nodeType":"YulIf","src":"17549:56:3"},{"nodeType":"YulVariableDeclaration","src":"17615:52:3","value":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"17661:4:3"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"17655:5:3"},"nodeType":"YulFunctionCall","src":"17655:11:3"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"17629:25:3"},"nodeType":"YulFunctionCall","src":"17629:38:3"},"variables":[{"name":"oldLen","nodeType":"YulTypedName","src":"17619:6:3","type":""}]},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"17759:4:3"},{"name":"oldLen","nodeType":"YulIdentifier","src":"17765:6:3"},{"name":"newLen","nodeType":"YulIdentifier","src":"17773:6:3"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_bytes_storage","nodeType":"YulIdentifier","src":"17714:44:3"},"nodeType":"YulFunctionCall","src":"17714:66:3"},"nodeType":"YulExpressionStatement","src":"17714:66:3"},{"nodeType":"YulVariableDeclaration","src":"17790:18:3","value":{"kind":"number","nodeType":"YulLiteral","src":"17807:1:3","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"17794:9:3","type":""}]},{"nodeType":"YulAssignment","src":"17818:17:3","value":{"kind":"number","nodeType":"YulLiteral","src":"17831:4:3","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"17818:9:3"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"17882:610:3","statements":[{"nodeType":"YulVariableDeclaration","src":"17896:37:3","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"17915:6:3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17927:4:3","type":"","value":"0x1f"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"17923:3:3"},"nodeType":"YulFunctionCall","src":"17923:9:3"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17911:3:3"},"nodeType":"YulFunctionCall","src":"17911:22:3"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"17900:7:3","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17947:50:3","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"17992:4:3"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nodeType":"YulIdentifier","src":"17961:30:3"},"nodeType":"YulFunctionCall","src":"17961:36:3"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"17951:6:3","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18010:10:3","value":{"kind":"number","nodeType":"YulLiteral","src":"18019:1:3","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"18014:1:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"18078:163:3","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"18103:6:3"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18121:3:3"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"18126:9:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18117:3:3"},"nodeType":"YulFunctionCall","src":"18117:19:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18111:5:3"},"nodeType":"YulFunctionCall","src":"18111:26:3"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"18096:6:3"},"nodeType":"YulFunctionCall","src":"18096:42:3"},"nodeType":"YulExpressionStatement","src":"18096:42:3"},{"nodeType":"YulAssignment","src":"18155:24:3","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"18169:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"18177:1:3","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18165:3:3"},"nodeType":"YulFunctionCall","src":"18165:14:3"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"18155:6:3"}]},{"nodeType":"YulAssignment","src":"18196:31:3","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"18213:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"18224:2:3","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18209:3:3"},"nodeType":"YulFunctionCall","src":"18209:18:3"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"18196:9:3"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18044:1:3"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"18047:7:3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18041:2:3"},"nodeType":"YulFunctionCall","src":"18041:14:3"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"18056:21:3","statements":[{"nodeType":"YulAssignment","src":"18058:17:3","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18067:1:3"},{"kind":"number","nodeType":"YulLiteral","src":"18070:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18063:3:3"},"nodeType":"YulFunctionCall","src":"18063:12:3"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"18058:1:3"}]}]},"pre":{"nodeType":"YulBlock","src":"18037:3:3","statements":[]},"src":"18033:208:3"},{"body":{"nodeType":"YulBlock","src":"18277:156:3","statements":[{"nodeType":"YulVariableDeclaration","src":"18295:43:3","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18322:3:3"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"18327:9:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18318:3:3"},"nodeType":"YulFunctionCall","src":"18318:19:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18312:5:3"},"nodeType":"YulFunctionCall","src":"18312:26:3"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"18299:9:3","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"18362:6:3"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"18389:9:3"},{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"18404:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"18412:4:3","type":"","value":"0x1f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18400:3:3"},"nodeType":"YulFunctionCall","src":"18400:17:3"}],"functionName":{"name":"mask_bytes_dynamic","nodeType":"YulIdentifier","src":"18370:18:3"},"nodeType":"YulFunctionCall","src":"18370:48:3"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"18355:6:3"},"nodeType":"YulFunctionCall","src":"18355:64:3"},"nodeType":"YulExpressionStatement","src":"18355:64:3"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"18260:7:3"},{"name":"newLen","nodeType":"YulIdentifier","src":"18269:6:3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18257:2:3"},"nodeType":"YulFunctionCall","src":"18257:19:3"},"nodeType":"YulIf","src":"18254:179:3"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"18453:4:3"},{"arguments":[{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"18467:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"18475:1:3","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"18463:3:3"},"nodeType":"YulFunctionCall","src":"18463:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"18479:1:3","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18459:3:3"},"nodeType":"YulFunctionCall","src":"18459:22:3"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"18446:6:3"},"nodeType":"YulFunctionCall","src":"18446:36:3"},"nodeType":"YulExpressionStatement","src":"18446:36:3"}]},"nodeType":"YulCase","src":"17875:617:3","value":{"kind":"number","nodeType":"YulLiteral","src":"17880:1:3","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"18509:222:3","statements":[{"nodeType":"YulVariableDeclaration","src":"18523:14:3","value":{"kind":"number","nodeType":"YulLiteral","src":"18536:1:3","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"18527:5:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"18560:67:3","statements":[{"nodeType":"YulAssignment","src":"18578:35:3","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18597:3:3"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"18602:9:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18593:3:3"},"nodeType":"YulFunctionCall","src":"18593:19:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18587:5:3"},"nodeType":"YulFunctionCall","src":"18587:26:3"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"18578:5:3"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"18553:6:3"},"nodeType":"YulIf","src":"18550:77:3"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"18647:4:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18706:5:3"},{"name":"newLen","nodeType":"YulIdentifier","src":"18713:6:3"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"18653:52:3"},"nodeType":"YulFunctionCall","src":"18653:67:3"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"18640:6:3"},"nodeType":"YulFunctionCall","src":"18640:81:3"},"nodeType":"YulExpressionStatement","src":"18640:81:3"}]},"nodeType":"YulCase","src":"18501:230:3","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"17855:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"17863:2:3","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17852:2:3"},"nodeType":"YulFunctionCall","src":"17852:14:3"},"nodeType":"YulSwitch","src":"17845:886:3"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"17426:4:3","type":""},{"name":"src","nodeType":"YulTypedName","src":"17432:3:3","type":""}],"src":"17347:1390:3"},{"body":{"nodeType":"YulBlock","src":"18801:64:3","statements":[{"nodeType":"YulAssignment","src":"18811:48:3","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"18841:3:3"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"18850:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"18855:2:3","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18846:3:3"},"nodeType":"YulFunctionCall","src":"18846:12:3"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"18820:20:3"},"nodeType":"YulFunctionCall","src":"18820:39:3"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"18811:5:3"}]}]},"name":"calldata_access_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"baseRef","nodeType":"YulTypedName","src":"18778:7:3","type":""},{"name":"ptr","nodeType":"YulTypedName","src":"18787:3:3","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"18795:5:3","type":""}],"src":"18743:122:3"},{"body":{"nodeType":"YulBlock","src":"18926:53:3","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18943:3:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18966:5:3"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"18948:17:3"},"nodeType":"YulFunctionCall","src":"18948:24:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18936:6:3"},"nodeType":"YulFunctionCall","src":"18936:37:3"},"nodeType":"YulExpressionStatement","src":"18936:37:3"}]},"name":"abi_encode_t_bytes32_to_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18914:5:3","type":""},{"name":"pos","nodeType":"YulTypedName","src":"18921:3:3","type":""}],"src":"18871:108:3"},{"body":{"nodeType":"YulBlock","src":"19074:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19091:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19094:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19084:6:3"},"nodeType":"YulFunctionCall","src":"19084:12:3"},"nodeType":"YulExpressionStatement","src":"19084:12:3"}]},"name":"revert_error_db64ea6d4a12deece376118739de8d9f517a2db5b58ea2ca332ea908c04c71d4","nodeType":"YulFunctionDefinition","src":"18985:117:3"},{"body":{"nodeType":"YulBlock","src":"19195:288:3","statements":[{"nodeType":"YulVariableDeclaration","src":"19205:43:3","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"19244:3:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"19231:12:3"},"nodeType":"YulFunctionCall","src":"19231:17:3"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"19209:18:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"19342:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_db64ea6d4a12deece376118739de8d9f517a2db5b58ea2ca332ea908c04c71d4","nodeType":"YulIdentifier","src":"19344:77:3"},"nodeType":"YulFunctionCall","src":"19344:79:3"},"nodeType":"YulExpressionStatement","src":"19344:79:3"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"19271:18:3"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"19299:12:3"},"nodeType":"YulFunctionCall","src":"19299:14:3"},{"name":"base_ref","nodeType":"YulIdentifier","src":"19315:8:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19295:3:3"},"nodeType":"YulFunctionCall","src":"19295:29:3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19330:4:3","type":"","value":"0xc0"},{"kind":"number","nodeType":"YulLiteral","src":"19336:1:3","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19326:3:3"},"nodeType":"YulFunctionCall","src":"19326:12:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19291:3:3"},"nodeType":"YulFunctionCall","src":"19291:48:3"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19267:3:3"},"nodeType":"YulFunctionCall","src":"19267:73:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19260:6:3"},"nodeType":"YulFunctionCall","src":"19260:81:3"},"nodeType":"YulIf","src":"19257:168:3"},{"nodeType":"YulAssignment","src":"19434:42:3","value":{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"19447:18:3"},{"name":"base_ref","nodeType":"YulIdentifier","src":"19467:8:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19443:3:3"},"nodeType":"YulFunctionCall","src":"19443:33:3"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"19434:5:3"}]}]},"name":"calldata_access_t_struct$_ReportData_$73_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"19171:8:3","type":""},{"name":"ptr","nodeType":"YulTypedName","src":"19181:3:3","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"19189:5:3","type":""}],"src":"19108:375:3"},{"body":{"nodeType":"YulBlock","src":"19578:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19595:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19598:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19588:6:3"},"nodeType":"YulFunctionCall","src":"19588:12:3"},"nodeType":"YulExpressionStatement","src":"19588:12:3"}]},"name":"revert_error_0803104b3ab68501accf02de57372b8e5e6e1582158b771d3f89279dc6822fe2","nodeType":"YulFunctionDefinition","src":"19489:117:3"},{"body":{"nodeType":"YulBlock","src":"19701:28:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19718:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19721:1:3","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19711:6:3"},"nodeType":"YulFunctionCall","src":"19711:12:3"},"nodeType":"YulExpressionStatement","src":"19711:12:3"}]},"name":"revert_error_3894daff73bdbb8963c284e167b207f7abade3c031c50828ea230a16bdbc0f20","nodeType":"YulFunctionDefinition","src":"19612:117:3"},{"body":{"nodeType":"YulBlock","src":"19813:633:3","statements":[{"nodeType":"YulVariableDeclaration","src":"19823:43:3","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"19862:3:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"19849:12:3"},"nodeType":"YulFunctionCall","src":"19849:17:3"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"19827:18:3","type":""}]},{"body":{"nodeType":"YulBlock","src":"19960:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_db64ea6d4a12deece376118739de8d9f517a2db5b58ea2ca332ea908c04c71d4","nodeType":"YulIdentifier","src":"19962:77:3"},"nodeType":"YulFunctionCall","src":"19962:79:3"},"nodeType":"YulExpressionStatement","src":"19962:79:3"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"19889:18:3"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"19917:12:3"},"nodeType":"YulFunctionCall","src":"19917:14:3"},{"name":"base_ref","nodeType":"YulIdentifier","src":"19933:8:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19913:3:3"},"nodeType":"YulFunctionCall","src":"19913:29:3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19948:4:3","type":"","value":"0x20"},{"kind":"number","nodeType":"YulLiteral","src":"19954:1:3","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19944:3:3"},"nodeType":"YulFunctionCall","src":"19944:12:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19909:3:3"},"nodeType":"YulFunctionCall","src":"19909:48:3"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19885:3:3"},"nodeType":"YulFunctionCall","src":"19885:73:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19878:6:3"},"nodeType":"YulFunctionCall","src":"19878:81:3"},"nodeType":"YulIf","src":"19875:168:3"},{"nodeType":"YulAssignment","src":"20052:42:3","value":{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"20065:18:3"},{"name":"base_ref","nodeType":"YulIdentifier","src":"20085:8:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20061:3:3"},"nodeType":"YulFunctionCall","src":"20061:33:3"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"20052:5:3"}]},{"nodeType":"YulAssignment","src":"20104:29:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20127:5:3"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"20114:12:3"},"nodeType":"YulFunctionCall","src":"20114:19:3"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"20104:6:3"}]},{"nodeType":"YulAssignment","src":"20142:25:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20155:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"20162:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20151:3:3"},"nodeType":"YulFunctionCall","src":"20151:16:3"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"20142:5:3"}]},{"body":{"nodeType":"YulBlock","src":"20210:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_0803104b3ab68501accf02de57372b8e5e6e1582158b771d3f89279dc6822fe2","nodeType":"YulIdentifier","src":"20212:77:3"},"nodeType":"YulFunctionCall","src":"20212:79:3"},"nodeType":"YulExpressionStatement","src":"20212:79:3"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20182:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"20190:18:3","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20179:2:3"},"nodeType":"YulFunctionCall","src":"20179:30:3"},"nodeType":"YulIf","src":"20176:117:3"},{"body":{"nodeType":"YulBlock","src":"20356:83:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3894daff73bdbb8963c284e167b207f7abade3c031c50828ea230a16bdbc0f20","nodeType":"YulIdentifier","src":"20358:77:3"},"nodeType":"YulFunctionCall","src":"20358:79:3"},"nodeType":"YulExpressionStatement","src":"20358:79:3"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20309:5:3"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"20320:12:3"},"nodeType":"YulFunctionCall","src":"20320:14:3"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20340:6:3"},{"kind":"number","nodeType":"YulLiteral","src":"20348:4:3","type":"","value":"0x01"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"20336:3:3"},"nodeType":"YulFunctionCall","src":"20336:17:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20316:3:3"},"nodeType":"YulFunctionCall","src":"20316:38:3"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"20305:3:3"},"nodeType":"YulFunctionCall","src":"20305:50:3"},"nodeType":"YulIf","src":"20302:137:3"}]},"name":"calldata_access_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"19781:8:3","type":""},{"name":"ptr","nodeType":"YulTypedName","src":"19791:3:3","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"19799:5:3","type":""},{"name":"length","nodeType":"YulTypedName","src":"19806:6:3","type":""}],"src":"19735:711:3"},{"body":{"nodeType":"YulBlock","src":"20564:204:3","statements":[{"nodeType":"YulAssignment","src":"20574:67:3","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20629:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"20634:6:3"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"20581:47:3"},"nodeType":"YulFunctionCall","src":"20581:60:3"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"20574:3:3"}]},{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"20688:5:3"},{"name":"pos","nodeType":"YulIdentifier","src":"20695:3:3"},{"name":"length","nodeType":"YulIdentifier","src":"20700:6:3"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"20651:36:3"},"nodeType":"YulFunctionCall","src":"20651:56:3"},"nodeType":"YulExpressionStatement","src":"20651:56:3"},{"nodeType":"YulAssignment","src":"20716:46:3","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20727:3:3"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20754:6:3"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"20732:21:3"},"nodeType":"YulFunctionCall","src":"20732:29:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20723:3:3"},"nodeType":"YulFunctionCall","src":"20723:39:3"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"20716:3:3"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"20537:5:3","type":""},{"name":"length","nodeType":"YulTypedName","src":"20544:6:3","type":""},{"name":"pos","nodeType":"YulTypedName","src":"20552:3:3","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"20560:3:3","type":""}],"src":"20474:294:3"},{"body":{"nodeType":"YulBlock","src":"20832:64:3","statements":[{"nodeType":"YulAssignment","src":"20842:48:3","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"20872:3:3"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"20881:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"20886:2:3","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20877:3:3"},"nodeType":"YulFunctionCall","src":"20877:12:3"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"20851:20:3"},"nodeType":"YulFunctionCall","src":"20851:39:3"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"20842:5:3"}]}]},"name":"calldata_access_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"baseRef","nodeType":"YulTypedName","src":"20809:7:3","type":""},{"name":"ptr","nodeType":"YulTypedName","src":"20818:3:3","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"20826:5:3","type":""}],"src":"20774:122:3"},{"body":{"nodeType":"YulBlock","src":"21066:1435:3","statements":[{"nodeType":"YulVariableDeclaration","src":"21076:26:3","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"21092:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"21097:4:3","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21088:3:3"},"nodeType":"YulFunctionCall","src":"21088:14:3"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"21080:4:3","type":""}]},{"nodeType":"YulBlock","src":"21112:302:3","statements":[{"nodeType":"YulVariableDeclaration","src":"21148:95:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21219:5:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21230:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"21237:4:3","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21226:3:3"},"nodeType":"YulFunctionCall","src":"21226:16:3"}],"functionName":{"name":"calldata_access_t_bytes_calldata_ptr","nodeType":"YulIdentifier","src":"21182:36:3"},"nodeType":"YulFunctionCall","src":"21182:61:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"21152:12:3","type":""},{"name":"memberValue1","nodeType":"YulTypedName","src":"21166:12:3","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"21268:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"21273:4:3","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21264:3:3"},"nodeType":"YulFunctionCall","src":"21264:14:3"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"21284:4:3"},{"name":"pos","nodeType":"YulIdentifier","src":"21290:3:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21280:3:3"},"nodeType":"YulFunctionCall","src":"21280:14:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21257:6:3"},"nodeType":"YulFunctionCall","src":"21257:38:3"},"nodeType":"YulExpressionStatement","src":"21257:38:3"},{"nodeType":"YulAssignment","src":"21308:95:3","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"21370:12:3"},{"name":"memberValue1","nodeType":"YulIdentifier","src":"21384:12:3"},{"name":"tail","nodeType":"YulIdentifier","src":"21398:4:3"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"21316:53:3"},"nodeType":"YulFunctionCall","src":"21316:87:3"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21308:4:3"}]}]},{"nodeType":"YulBlock","src":"21424:196:3","statements":[{"nodeType":"YulVariableDeclaration","src":"21464:70:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21510:5:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21521:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"21528:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21517:3:3"},"nodeType":"YulFunctionCall","src":"21517:16:3"}],"functionName":{"name":"calldata_access_t_uint256","nodeType":"YulIdentifier","src":"21484:25:3"},"nodeType":"YulFunctionCall","src":"21484:50:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"21468:12:3","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"21581:12:3"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"21599:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"21604:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21595:3:3"},"nodeType":"YulFunctionCall","src":"21595:14:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"21547:33:3"},"nodeType":"YulFunctionCall","src":"21547:63:3"},"nodeType":"YulExpressionStatement","src":"21547:63:3"}]},{"nodeType":"YulBlock","src":"21630:201:3","statements":[{"nodeType":"YulVariableDeclaration","src":"21675:70:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21721:5:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21732:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"21739:4:3","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21728:3:3"},"nodeType":"YulFunctionCall","src":"21728:16:3"}],"functionName":{"name":"calldata_access_t_uint256","nodeType":"YulIdentifier","src":"21695:25:3"},"nodeType":"YulFunctionCall","src":"21695:50:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"21679:12:3","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"21792:12:3"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"21810:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"21815:4:3","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21806:3:3"},"nodeType":"YulFunctionCall","src":"21806:14:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"21758:33:3"},"nodeType":"YulFunctionCall","src":"21758:63:3"},"nodeType":"YulExpressionStatement","src":"21758:63:3"}]},{"nodeType":"YulBlock","src":"21841:204:3","statements":[{"nodeType":"YulVariableDeclaration","src":"21889:70:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21935:5:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21946:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"21953:4:3","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21942:3:3"},"nodeType":"YulFunctionCall","src":"21942:16:3"}],"functionName":{"name":"calldata_access_t_uint256","nodeType":"YulIdentifier","src":"21909:25:3"},"nodeType":"YulFunctionCall","src":"21909:50:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"21893:12:3","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"22006:12:3"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22024:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"22029:4:3","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22020:3:3"},"nodeType":"YulFunctionCall","src":"22020:14:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"21972:33:3"},"nodeType":"YulFunctionCall","src":"21972:63:3"},"nodeType":"YulExpressionStatement","src":"21972:63:3"}]},{"nodeType":"YulBlock","src":"22055:200:3","statements":[{"nodeType":"YulVariableDeclaration","src":"22099:70:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22145:5:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22156:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"22163:4:3","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22152:3:3"},"nodeType":"YulFunctionCall","src":"22152:16:3"}],"functionName":{"name":"calldata_access_t_uint256","nodeType":"YulIdentifier","src":"22119:25:3"},"nodeType":"YulFunctionCall","src":"22119:50:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"22103:12:3","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"22216:12:3"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22234:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"22239:4:3","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22230:3:3"},"nodeType":"YulFunctionCall","src":"22230:14:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"22182:33:3"},"nodeType":"YulFunctionCall","src":"22182:63:3"},"nodeType":"YulExpressionStatement","src":"22182:63:3"}]},{"nodeType":"YulBlock","src":"22265:209:3","statements":[{"nodeType":"YulVariableDeclaration","src":"22318:70:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22364:5:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22375:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"22382:4:3","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22371:3:3"},"nodeType":"YulFunctionCall","src":"22371:16:3"}],"functionName":{"name":"calldata_access_t_uint256","nodeType":"YulIdentifier","src":"22338:25:3"},"nodeType":"YulFunctionCall","src":"22338:50:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"22322:12:3","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"22435:12:3"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22453:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"22458:4:3","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22449:3:3"},"nodeType":"YulFunctionCall","src":"22449:14:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"22401:33:3"},"nodeType":"YulFunctionCall","src":"22401:63:3"},"nodeType":"YulExpressionStatement","src":"22401:63:3"}]},{"nodeType":"YulAssignment","src":"22484:11:3","value":{"name":"tail","nodeType":"YulIdentifier","src":"22491:4:3"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"22484:3:3"}]}]},"name":"abi_encode_t_struct$_ReportData_$73_calldata_ptr_to_t_struct$_ReportData_$73_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21045:5:3","type":""},{"name":"pos","nodeType":"YulTypedName","src":"21052:3:3","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21061:3:3","type":""}],"src":"20948:1553:3"},{"body":{"nodeType":"YulBlock","src":"22725:820:3","statements":[{"nodeType":"YulVariableDeclaration","src":"22735:26:3","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22751:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"22756:4:3","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22747:3:3"},"nodeType":"YulFunctionCall","src":"22747:14:3"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"22739:4:3","type":""}]},{"nodeType":"YulBlock","src":"22771:194:3","statements":[{"nodeType":"YulVariableDeclaration","src":"22809:70:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22855:5:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22866:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"22873:4:3","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22862:3:3"},"nodeType":"YulFunctionCall","src":"22862:16:3"}],"functionName":{"name":"calldata_access_t_bytes32","nodeType":"YulIdentifier","src":"22829:25:3"},"nodeType":"YulFunctionCall","src":"22829:50:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"22813:12:3","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"22926:12:3"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22944:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"22949:4:3","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22940:3:3"},"nodeType":"YulFunctionCall","src":"22940:14:3"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32","nodeType":"YulIdentifier","src":"22892:33:3"},"nodeType":"YulFunctionCall","src":"22892:63:3"},"nodeType":"YulExpressionStatement","src":"22892:63:3"}]},{"nodeType":"YulBlock","src":"22975:326:3","statements":[{"nodeType":"YulVariableDeclaration","src":"23012:98:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23086:5:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23097:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"23104:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23093:3:3"},"nodeType":"YulFunctionCall","src":"23093:16:3"}],"functionName":{"name":"calldata_access_t_struct$_ReportData_$73_calldata_ptr","nodeType":"YulIdentifier","src":"23032:53:3"},"nodeType":"YulFunctionCall","src":"23032:78:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"23016:12:3","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23135:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"23140:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23131:3:3"},"nodeType":"YulFunctionCall","src":"23131:14:3"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"23151:4:3"},{"name":"pos","nodeType":"YulIdentifier","src":"23157:3:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23147:3:3"},"nodeType":"YulFunctionCall","src":"23147:14:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23124:6:3"},"nodeType":"YulFunctionCall","src":"23124:38:3"},"nodeType":"YulExpressionStatement","src":"23124:38:3"},{"nodeType":"YulAssignment","src":"23175:115:3","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"23271:12:3"},{"name":"tail","nodeType":"YulIdentifier","src":"23285:4:3"}],"functionName":{"name":"abi_encode_t_struct$_ReportData_$73_calldata_ptr_to_t_struct$_ReportData_$73_memory_ptr","nodeType":"YulIdentifier","src":"23183:87:3"},"nodeType":"YulFunctionCall","src":"23183:107:3"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23175:4:3"}]}]},{"nodeType":"YulBlock","src":"23311:207:3","statements":[{"nodeType":"YulVariableDeclaration","src":"23362:70:3","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23408:5:3"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23419:5:3"},{"kind":"number","nodeType":"YulLiteral","src":"23426:4:3","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23415:3:3"},"nodeType":"YulFunctionCall","src":"23415:16:3"}],"functionName":{"name":"calldata_access_t_uint256","nodeType":"YulIdentifier","src":"23382:25:3"},"nodeType":"YulFunctionCall","src":"23382:50:3"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"23366:12:3","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"23479:12:3"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23497:3:3"},{"kind":"number","nodeType":"YulLiteral","src":"23502:4:3","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23493:3:3"},"nodeType":"YulFunctionCall","src":"23493:14:3"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"23445:33:3"},"nodeType":"YulFunctionCall","src":"23445:63:3"},"nodeType":"YulExpressionStatement","src":"23445:63:3"}]},{"nodeType":"YulAssignment","src":"23528:11:3","value":{"name":"tail","nodeType":"YulIdentifier","src":"23535:4:3"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"23528:3:3"}]}]},"name":"abi_encode_t_struct$_OracleAttestationData_$60_calldata_ptr_to_t_struct$_OracleAttestationData_$60_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22704:5:3","type":""},{"name":"pos","nodeType":"YulTypedName","src":"22711:3:3","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"22720:3:3","type":""}],"src":"22575:970:3"},{"body":{"nodeType":"YulBlock","src":"23725:251:3","statements":[{"nodeType":"YulAssignment","src":"23735:26:3","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23747:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"23758:2:3","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23743:3:3"},"nodeType":"YulFunctionCall","src":"23743:18:3"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23735:4:3"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23782:9:3"},{"kind":"number","nodeType":"YulLiteral","src":"23793:1:3","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23778:3:3"},"nodeType":"YulFunctionCall","src":"23778:17:3"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"23801:4:3"},{"name":"headStart","nodeType":"YulIdentifier","src":"23807:9:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23797:3:3"},"nodeType":"YulFunctionCall","src":"23797:20:3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23771:6:3"},"nodeType":"YulFunctionCall","src":"23771:47:3"},"nodeType":"YulExpressionStatement","src":"23771:47:3"},{"nodeType":"YulAssignment","src":"23827:142:3","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23955:6:3"},{"name":"tail","nodeType":"YulIdentifier","src":"23964:4:3"}],"functionName":{"name":"abi_encode_t_struct$_OracleAttestationData_$60_calldata_ptr_to_t_struct$_OracleAttestationData_$60_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"23835:119:3"},"nodeType":"YulFunctionCall","src":"23835:134:3"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23827:4:3"}]}]},"name":"abi_encode_tuple_t_struct$_OracleAttestationData_$60_calldata_ptr__to_t_struct$_OracleAttestationData_$60_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23697:9:3","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23709:6:3","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23720:4:3","type":""}],"src":"23551:425:3"},{"body":{"nodeType":"YulBlock","src":"24010:152:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24027:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24030:77:3","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24020:6:3"},"nodeType":"YulFunctionCall","src":"24020:88:3"},"nodeType":"YulExpressionStatement","src":"24020:88:3"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24124:1:3","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24127:4:3","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24117:6:3"},"nodeType":"YulFunctionCall","src":"24117:15:3"},"nodeType":"YulExpressionStatement","src":"24117:15:3"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24148:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24151:4:3","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24141:6:3"},"nodeType":"YulFunctionCall","src":"24141:15:3"},"nodeType":"YulExpressionStatement","src":"24141:15:3"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"23982:180:3"},{"body":{"nodeType":"YulBlock","src":"24196:152:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24213:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24216:77:3","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24206:6:3"},"nodeType":"YulFunctionCall","src":"24206:88:3"},"nodeType":"YulExpressionStatement","src":"24206:88:3"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24310:1:3","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24313:4:3","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24303:6:3"},"nodeType":"YulFunctionCall","src":"24303:15:3"},"nodeType":"YulExpressionStatement","src":"24303:15:3"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24334:1:3","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24337:4:3","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24327:6:3"},"nodeType":"YulFunctionCall","src":"24327:15:3"},"nodeType":"YulExpressionStatement","src":"24327:15:3"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"24168:180:3"},{"body":{"nodeType":"YulBlock","src":"24399:149:3","statements":[{"nodeType":"YulAssignment","src":"24409:25:3","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24432:1:3"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24414:17:3"},"nodeType":"YulFunctionCall","src":"24414:20:3"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"24409:1:3"}]},{"nodeType":"YulAssignment","src":"24443:25:3","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24466:1:3"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24448:17:3"},"nodeType":"YulFunctionCall","src":"24448:20:3"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"24443:1:3"}]},{"nodeType":"YulAssignment","src":"24477:17:3","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24489:1:3"},{"name":"y","nodeType":"YulIdentifier","src":"24492:1:3"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24485:3:3"},"nodeType":"YulFunctionCall","src":"24485:9:3"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"24477:4:3"}]},{"body":{"nodeType":"YulBlock","src":"24519:22:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24521:16:3"},"nodeType":"YulFunctionCall","src":"24521:18:3"},"nodeType":"YulExpressionStatement","src":"24521:18:3"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"24510:4:3"},{"name":"x","nodeType":"YulIdentifier","src":"24516:1:3"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24507:2:3"},"nodeType":"YulFunctionCall","src":"24507:11:3"},"nodeType":"YulIf","src":"24504:37:3"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24385:1:3","type":""},{"name":"y","nodeType":"YulTypedName","src":"24388:1:3","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"24394:4:3","type":""}],"src":"24354:194:3"},{"body":{"nodeType":"YulBlock","src":"24602:362:3","statements":[{"nodeType":"YulAssignment","src":"24612:25:3","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24635:1:3"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24617:17:3"},"nodeType":"YulFunctionCall","src":"24617:20:3"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"24612:1:3"}]},{"nodeType":"YulAssignment","src":"24646:25:3","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24669:1:3"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24651:17:3"},"nodeType":"YulFunctionCall","src":"24651:20:3"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"24646:1:3"}]},{"nodeType":"YulVariableDeclaration","src":"24680:28:3","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24703:1:3"},{"name":"y","nodeType":"YulIdentifier","src":"24706:1:3"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24699:3:3"},"nodeType":"YulFunctionCall","src":"24699:9:3"},"variables":[{"name":"product_raw","nodeType":"YulTypedName","src":"24684:11:3","type":""}]},{"nodeType":"YulAssignment","src":"24717:41:3","value":{"arguments":[{"name":"product_raw","nodeType":"YulIdentifier","src":"24746:11:3"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24728:17:3"},"nodeType":"YulFunctionCall","src":"24728:30:3"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24717:7:3"}]},{"body":{"nodeType":"YulBlock","src":"24935:22:3","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24937:16:3"},"nodeType":"YulFunctionCall","src":"24937:18:3"},"nodeType":"YulExpressionStatement","src":"24937:18:3"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24868:1:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24861:6:3"},"nodeType":"YulFunctionCall","src":"24861:9:3"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24891:1:3"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"24898:7:3"},{"name":"x","nodeType":"YulIdentifier","src":"24907:1:3"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24894:3:3"},"nodeType":"YulFunctionCall","src":"24894:15:3"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"24888:2:3"},"nodeType":"YulFunctionCall","src":"24888:22:3"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"24841:2:3"},"nodeType":"YulFunctionCall","src":"24841:83:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24821:6:3"},"nodeType":"YulFunctionCall","src":"24821:113:3"},"nodeType":"YulIf","src":"24818:139:3"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24585:1:3","type":""},{"name":"y","nodeType":"YulTypedName","src":"24588:1:3","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"24594:7:3","type":""}],"src":"24554:410:3"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d() {\n revert(0, 0)\n }\n\n // struct OracleAttestationData\n function abi_decode_t_struct$_OracleAttestationData_$60_calldata_ptr(offset, end) -> value {\n if slt(sub(end, offset), 96) { revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d() }\n value := offset\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // struct Validator[]\n function abi_decode_t_array$_t_struct$_Validator_$85_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x40)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // struct Signature[]\n function abi_decode_t_array$_t_struct$_Signature_$80_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x60)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_struct$_OracleAttestationData_$60_calldata_ptrt_array$_t_struct$_Validator_$85_calldata_ptr_$dyn_calldata_ptrt_array$_t_struct$_Signature_$80_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_OracleAttestationData_$60_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_array$_t_struct$_Validator_$85_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3, value4 := abi_decode_t_array$_t_struct$_Signature_$80_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n // struct DataBankPlayground.AggregateData -> struct DataBankPlayground.AggregateData\n function abi_encode_t_struct$_AggregateData_$141_memory_ptr_to_t_struct$_AggregateData_$141_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0xa0)\n\n {\n // value\n\n let memberValue0 := mload(add(value, 0x00))\n\n mstore(add(pos, 0x00), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // power\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n {\n // aggregateTimestamp\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x40))\n }\n\n {\n // attestationTimestamp\n\n let memberValue0 := mload(add(value, 0x60))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x60))\n }\n\n {\n // relayTimestamp\n\n let memberValue0 := mload(add(value, 0x80))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x80))\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_AggregateData_$141_memory_ptr__to_t_struct$_AggregateData_$141_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_AggregateData_$141_memory_ptr_to_t_struct$_AggregateData_$141_memory_ptr_fromStack(value0, tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr_t_uint256_t_uint256_t_uint256_t_uint256__to_t_bytes_memory_ptr_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_bytes32t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_struct$_ReportData_$73_calldata_ptr(base_ref, ptr_to_tail) -> addr {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0xc0, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n }\n\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_bytes_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_bytes_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_bytes_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n let newLen := array_length_t_bytes_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_bytes_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function calldata_access_t_bytes32(baseRef, ptr) -> value {\n value := abi_decode_t_bytes32(ptr, add(ptr, 32))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function revert_error_db64ea6d4a12deece376118739de8d9f517a2db5b58ea2ca332ea908c04c71d4() {\n revert(0, 0)\n }\n\n function calldata_access_t_struct$_ReportData_$73_calldata_ptr(base_ref, ptr) -> value {\n let rel_offset_of_tail := calldataload(ptr)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0xc0, 1)))) { revert_error_db64ea6d4a12deece376118739de8d9f517a2db5b58ea2ca332ea908c04c71d4() }\n value := add(rel_offset_of_tail, base_ref)\n\n }\n\n function revert_error_0803104b3ab68501accf02de57372b8e5e6e1582158b771d3f89279dc6822fe2() {\n revert(0, 0)\n }\n\n function revert_error_3894daff73bdbb8963c284e167b207f7abade3c031c50828ea230a16bdbc0f20() {\n revert(0, 0)\n }\n\n function calldata_access_t_bytes_calldata_ptr(base_ref, ptr) -> value, length {\n let rel_offset_of_tail := calldataload(ptr)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_db64ea6d4a12deece376118739de8d9f517a2db5b58ea2ca332ea908c04c71d4() }\n value := add(rel_offset_of_tail, base_ref)\n\n length := calldataload(value)\n value := add(value, 0x20)\n if gt(length, 0xffffffffffffffff) { revert_error_0803104b3ab68501accf02de57372b8e5e6e1582158b771d3f89279dc6822fe2() }\n if sgt(value, sub(calldatasize(), mul(length, 0x01))) { revert_error_3894daff73bdbb8963c284e167b207f7abade3c031c50828ea230a16bdbc0f20() }\n\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function calldata_access_t_uint256(baseRef, ptr) -> value {\n value := abi_decode_t_uint256(ptr, add(ptr, 32))\n }\n\n // struct ReportData -> struct ReportData\n function abi_encode_t_struct$_ReportData_$73_calldata_ptr_to_t_struct$_ReportData_$73_memory_ptr(value, pos) -> end {\n let tail := add(pos, 0xc0)\n\n {\n // value\n\n let memberValue0, memberValue1 := calldata_access_t_bytes_calldata_ptr(value, add(value, 0x00))\n\n mstore(add(pos, 0x00), sub(tail, pos))\n tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr(memberValue0, memberValue1, tail)\n\n }\n\n {\n // timestamp\n\n let memberValue0 := calldata_access_t_uint256(value, add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n {\n // aggregatePower\n\n let memberValue0 := calldata_access_t_uint256(value, add(value, 0x40))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x40))\n }\n\n {\n // previousTimestamp\n\n let memberValue0 := calldata_access_t_uint256(value, add(value, 0x60))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x60))\n }\n\n {\n // nextTimestamp\n\n let memberValue0 := calldata_access_t_uint256(value, add(value, 0x80))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x80))\n }\n\n {\n // lastConsensusTimestamp\n\n let memberValue0 := calldata_access_t_uint256(value, add(value, 0xa0))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xa0))\n }\n\n end := tail\n }\n\n // struct OracleAttestationData -> struct OracleAttestationData\n function abi_encode_t_struct$_OracleAttestationData_$60_calldata_ptr_to_t_struct$_OracleAttestationData_$60_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x60)\n\n {\n // queryId\n\n let memberValue0 := calldata_access_t_bytes32(value, add(value, 0x00))\n abi_encode_t_bytes32_to_t_bytes32(memberValue0, add(pos, 0x00))\n }\n\n {\n // report\n\n let memberValue0 := calldata_access_t_struct$_ReportData_$73_calldata_ptr(value, add(value, 0x20))\n\n mstore(add(pos, 0x20), sub(tail, pos))\n tail := abi_encode_t_struct$_ReportData_$73_calldata_ptr_to_t_struct$_ReportData_$73_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // attestationTimestamp\n\n let memberValue0 := calldata_access_t_uint256(value, add(value, 0x40))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x40))\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_OracleAttestationData_$60_calldata_ptr__to_t_struct$_OracleAttestationData_$60_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_OracleAttestationData_$60_calldata_ptr_to_t_struct$_OracleAttestationData_$60_memory_ptr_fromStack(value0, tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n}\n","id":3,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100625760003560e01c80636180801014610067578063717681c6146100835780638d12c426146100b3578063cb956711146100e7578063e3ac7e1114610117578063f237640a14610147575b600080fd5b610081600480360381019061007c919061085e565b610163565b005b61009d6004803603810190610098919061097b565b6102d7565b6040516100aa9190610ad0565b60405180910390f35b6100cd60048036038101906100c8919061097b565b6103de565b6040516100de959493929190610b4b565b60405180910390f35b61010160048036038101906100fc9190610ba5565b6104b9565b60405161010e9190610ad0565b60405180910390f35b610131600480360381019061012c9190610ba5565b6104d1565b60405161013e9190610bd2565b60405180910390f35b610161600480360381019061015c9190610d1d565b6104f0565b005b600080866000013581526020019081526020016000206040518060a001604052808780602001906101949190610d88565b80600001906101a39190610db0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018780602001906101fb9190610d88565b6040013581526020018780602001906102149190610d88565b602001358152602001876040013581526020014281525090806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000019081610269919061101f565b5060208201518160010155604082015181600201556060820151816003015560808201518160040155505084600001357f32569c122e0d7a43079203df1373675696c8ccd8ca67de60dc2238b6bb226214866040516102c89190611318565b60405180910390a25050505050565b6102df61073c565b60008084815260200190815260200160002082815481106103035761030261133a565b5b90600052602060002090600502016040518060a001604052908160008201805461032c90610e42565b80601f016020809104026020016040519081016040528092919081815260200182805461035890610e42565b80156103a55780601f1061037a576101008083540402835291602001916103a5565b820191906000526020600020905b81548152906001019060200180831161038857829003601f168201915b50505050508152602001600182015481526020016002820154815260200160038201548152602001600482015481525050905092915050565b600060205281600052604060002081815481106103fa57600080fd5b90600052602060002090600502016000915091505080600001805461041e90610e42565b80601f016020809104026020016040519081016040528092919081815260200182805461044a90610e42565b80156104975780601f1061046c57610100808354040283529160200191610497565b820191906000526020600020905b81548152906001019060200180831161047a57829003601f168201915b5050505050908060010154908060020154908060030154908060040154905085565b6104c161073c565b6104ca826105b6565b9050919050565b6000806000838152602001908152602001600020805490509050919050565b60006103e86001426105029190611398565b61050c91906113cc565b90506000808481526020019081526020016000206040518060a00160405280848152602001600081526020018381526020018381526020014281525090806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000019081610586919061101f565b50602082015181600101556040820151816002015560608201518160030155608082015181600401555050505050565b6105be61073c565b6000806000848152602001908152602001600020805490500361061c576040518060a0016040528060405180602001604052806000815250815260200160008152602001600081526020016000815260200160008152509050610737565b6000808381526020019081526020016000206001600080858152602001908152602001600020805490506106509190611398565b815481106106615761066061133a565b5b90600052602060002090600502016040518060a001604052908160008201805461068a90610e42565b80601f01602080910402602001604051908101604052809291908181526020018280546106b690610e42565b80156107035780601f106106d857610100808354040283529160200191610703565b820191906000526020600020905b8154815290600101906020018083116106e657829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505090505b919050565b6040518060a0016040528060608152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b60006060828403121561079a5761079961077f565b5b81905092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126107c8576107c76107a3565b5b8235905067ffffffffffffffff8111156107e5576107e46107a8565b5b602083019150836040820283011115610801576108006107ad565b5b9250929050565b60008083601f84011261081e5761081d6107a3565b5b8235905067ffffffffffffffff81111561083b5761083a6107a8565b5b602083019150836060820283011115610857576108566107ad565b5b9250929050565b60008060008060006060868803121561087a57610879610775565b5b600086013567ffffffffffffffff8111156108985761089761077a565b5b6108a488828901610784565b955050602086013567ffffffffffffffff8111156108c5576108c461077a565b5b6108d1888289016107b2565b9450945050604086013567ffffffffffffffff8111156108f4576108f361077a565b5b61090088828901610808565b92509250509295509295909350565b6000819050919050565b6109228161090f565b811461092d57600080fd5b50565b60008135905061093f81610919565b92915050565b6000819050919050565b61095881610945565b811461096357600080fd5b50565b6000813590506109758161094f565b92915050565b6000806040838503121561099257610991610775565b5b60006109a085828601610930565b92505060206109b185828601610966565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109f55780820151818401526020810190506109da565b60008484015250505050565b6000601f19601f8301169050919050565b6000610a1d826109bb565b610a2781856109c6565b9350610a378185602086016109d7565b610a4081610a01565b840191505092915050565b610a5481610945565b82525050565b600060a0830160008301518482036000860152610a778282610a12565b9150506020830151610a8c6020860182610a4b565b506040830151610a9f6040860182610a4b565b506060830151610ab26060860182610a4b565b506080830151610ac56080860182610a4b565b508091505092915050565b60006020820190508181036000830152610aea8184610a5a565b905092915050565b600082825260208201905092915050565b6000610b0e826109bb565b610b188185610af2565b9350610b288185602086016109d7565b610b3181610a01565b840191505092915050565b610b4581610945565b82525050565b600060a0820190508181036000830152610b658188610b03565b9050610b746020830187610b3c565b610b816040830186610b3c565b610b8e6060830185610b3c565b610b9b6080830184610b3c565b9695505050505050565b600060208284031215610bbb57610bba610775565b5b6000610bc984828501610930565b91505092915050565b6000602082019050610be76000830184610b3c565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c2a82610a01565b810181811067ffffffffffffffff82111715610c4957610c48610bf2565b5b80604052505050565b6000610c5c61076b565b9050610c688282610c21565b919050565b600067ffffffffffffffff821115610c8857610c87610bf2565b5b610c9182610a01565b9050602081019050919050565b82818337600083830152505050565b6000610cc0610cbb84610c6d565b610c52565b905082815260208101848484011115610cdc57610cdb610bed565b5b610ce7848285610c9e565b509392505050565b600082601f830112610d0457610d036107a3565b5b8135610d14848260208601610cad565b91505092915050565b60008060408385031215610d3457610d33610775565b5b6000610d4285828601610930565b925050602083013567ffffffffffffffff811115610d6357610d6261077a565b5b610d6f85828601610cef565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008235600160c003833603038112610da457610da3610d79565b5b80830191505092915050565b60008083356001602003843603038112610dcd57610dcc610d79565b5b80840192508235915067ffffffffffffffff821115610def57610dee610d7e565b5b602083019250600182023603831315610e0b57610e0a610d83565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e5a57607f821691505b602082108103610e6d57610e6c610e13565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302610ed57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610e98565b610edf8683610e98565b95508019841693508086168417925050509392505050565b6000819050919050565b6000610f1c610f17610f1284610945565b610ef7565b610945565b9050919050565b6000819050919050565b610f3683610f01565b610f4a610f4282610f23565b848454610ea5565b825550505050565b600090565b610f5f610f52565b610f6a818484610f2d565b505050565b5b81811015610f8e57610f83600082610f57565b600181019050610f70565b5050565b601f821115610fd357610fa481610e73565b610fad84610e88565b81016020851015610fbc578190505b610fd0610fc885610e88565b830182610f6f565b50505b505050565b600082821c905092915050565b6000610ff660001984600802610fd8565b1980831691505092915050565b600061100f8383610fe5565b9150826002028217905092915050565b611028826109bb565b67ffffffffffffffff81111561104157611040610bf2565b5b61104b8254610e42565b611056828285610f92565b600060209050601f8311600181146110895760008415611077578287015190505b6110818582611003565b8655506110e9565b601f19841661109786610e73565b60005b828110156110bf5784890151825560018201915060208501945060208101905061109a565b868310156110dc57848901516110d8601f891682610fe5565b8355505b6001600288020188555050505b505050505050565b60006111006020840184610930565b905092915050565b6111118161090f565b82525050565b600080fd5b60008235600160c00383360303811261113857611137611117565b5b82810191505092915050565b600080fd5b600080fd5b6000808335600160200384360303811261116b5761116a611117565b5b83810192508235915060208301925067ffffffffffffffff82111561119357611192611144565b5b6001820236038313156111a9576111a8611149565b5b509250929050565b60006111bd83856109c6565b93506111ca838584610c9e565b6111d383610a01565b840190509392505050565b60006111ed6020840184610966565b905092915050565b600060c08301611208600084018461114e565b858303600087015261121b8382846111b1565b9250505061122c60208401846111de565b6112396020860182610a4b565b5061124760408401846111de565b6112546040860182610a4b565b5061126260608401846111de565b61126f6060860182610a4b565b5061127d60808401846111de565b61128a6080860182610a4b565b5061129860a08401846111de565b6112a560a0860182610a4b565b508091505092915050565b6000606083016112c360008401846110f1565b6112d06000860182611108565b506112de602084018461111c565b84820360208601526112f082826111f5565b91505061130060408401846111de565b61130d6040860182610a4b565b508091505092915050565b6000602082019050818103600083015261133281846112b0565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113a382610945565b91506113ae83610945565b92508282039050818111156113c6576113c5611369565b5b92915050565b60006113d782610945565b91506113e283610945565b92508282026113f081610945565b9150828204841483151761140757611406611369565b5b509291505056fea2646970667358221220d922adb488834a0545ba3634eb410528a1c1d80682300de3fde8b06bb8179ea064736f6c63430008130033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x61808010 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x717681C6 EQ PUSH2 0x83 JUMPI DUP1 PUSH4 0x8D12C426 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0xCB956711 EQ PUSH2 0xE7 JUMPI DUP1 PUSH4 0xE3AC7E11 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0xF237640A EQ PUSH2 0x147 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x85E JUMP JUMPDEST PUSH2 0x163 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x97B JUMP JUMPDEST PUSH2 0x2D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAA SWAP2 SWAP1 PUSH2 0xAD0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x97B JUMP JUMPDEST PUSH2 0x3DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDE SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x101 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFC SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH2 0x4B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xAD0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12C SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH2 0x4D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13E SWAP2 SWAP1 PUSH2 0xBD2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x161 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15C SWAP2 SWAP1 PUSH2 0xD1D JUMP JUMPDEST PUSH2 0x4F0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x0 ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP8 DUP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x194 SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST DUP1 PUSH1 0x0 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0xDB0 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x40 ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x214 SWAP2 SWAP1 PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x20 ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x40 ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP2 PUSH2 0x269 SWAP2 SWAP1 PUSH2 0x101F JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE POP POP DUP5 PUSH1 0x0 ADD CALLDATALOAD PUSH32 0x32569C122E0D7A43079203DF1373675696C8CCD8CA67DE60DC2238B6BB226214 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2C8 SWAP2 SWAP1 PUSH2 0x1318 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2DF PUSH2 0x73C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x303 JUMPI PUSH2 0x302 PUSH2 0x133A JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x32C SWAP1 PUSH2 0xE42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x358 SWAP1 PUSH2 0xE42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3A5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x37A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3A5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x388 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x41E SWAP1 PUSH2 0xE42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x44A SWAP1 PUSH2 0xE42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x497 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x46C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x497 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x47A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 POP DUP6 JUMP JUMPDEST PUSH2 0x4C1 PUSH2 0x73C JUMP JUMPDEST PUSH2 0x4CA DUP3 PUSH2 0x5B6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E8 PUSH1 0x1 TIMESTAMP PUSH2 0x502 SWAP2 SWAP1 PUSH2 0x1398 JUMP JUMPDEST PUSH2 0x50C SWAP2 SWAP1 PUSH2 0x13CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP2 PUSH2 0x586 SWAP2 SWAP1 PUSH2 0x101F JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5BE PUSH2 0x73C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD SWAP1 POP SUB PUSH2 0x61C JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH2 0x737 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD SWAP1 POP PUSH2 0x650 SWAP2 SWAP1 PUSH2 0x1398 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x661 JUMPI PUSH2 0x660 PUSH2 0x133A JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x68A SWAP1 PUSH2 0xE42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6B6 SWAP1 PUSH2 0xE42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x703 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6D8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x703 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6E6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x79A JUMPI PUSH2 0x799 PUSH2 0x77F JUMP JUMPDEST JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x7C8 JUMPI PUSH2 0x7C7 PUSH2 0x7A3 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7E5 JUMPI PUSH2 0x7E4 PUSH2 0x7A8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x40 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x801 JUMPI PUSH2 0x800 PUSH2 0x7AD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x81E JUMPI PUSH2 0x81D PUSH2 0x7A3 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x83B JUMPI PUSH2 0x83A PUSH2 0x7A8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x60 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x857 JUMPI PUSH2 0x856 PUSH2 0x7AD JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x87A JUMPI PUSH2 0x879 PUSH2 0x775 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x898 JUMPI PUSH2 0x897 PUSH2 0x77A JUMP JUMPDEST JUMPDEST PUSH2 0x8A4 DUP9 DUP3 DUP10 ADD PUSH2 0x784 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8C5 JUMPI PUSH2 0x8C4 PUSH2 0x77A JUMP JUMPDEST JUMPDEST PUSH2 0x8D1 DUP9 DUP3 DUP10 ADD PUSH2 0x7B2 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8F4 JUMPI PUSH2 0x8F3 PUSH2 0x77A JUMP JUMPDEST JUMPDEST PUSH2 0x900 DUP9 DUP3 DUP10 ADD PUSH2 0x808 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x922 DUP2 PUSH2 0x90F JUMP JUMPDEST DUP2 EQ PUSH2 0x92D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x93F DUP2 PUSH2 0x919 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x958 DUP2 PUSH2 0x945 JUMP JUMPDEST DUP2 EQ PUSH2 0x963 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x975 DUP2 PUSH2 0x94F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x992 JUMPI PUSH2 0x991 PUSH2 0x775 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x9A0 DUP6 DUP3 DUP7 ADD PUSH2 0x930 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x9B1 DUP6 DUP3 DUP7 ADD PUSH2 0x966 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9F5 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA1D DUP3 PUSH2 0x9BB JUMP JUMPDEST PUSH2 0xA27 DUP2 DUP6 PUSH2 0x9C6 JUMP JUMPDEST SWAP4 POP PUSH2 0xA37 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D7 JUMP JUMPDEST PUSH2 0xA40 DUP2 PUSH2 0xA01 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA54 DUP2 PUSH2 0x945 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0xA77 DUP3 DUP3 PUSH2 0xA12 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0xA8C PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0xA9F PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0xAB2 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xAC5 PUSH1 0x80 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xAEA DUP2 DUP5 PUSH2 0xA5A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB0E DUP3 PUSH2 0x9BB JUMP JUMPDEST PUSH2 0xB18 DUP2 DUP6 PUSH2 0xAF2 JUMP JUMPDEST SWAP4 POP PUSH2 0xB28 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D7 JUMP JUMPDEST PUSH2 0xB31 DUP2 PUSH2 0xA01 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB45 DUP2 PUSH2 0x945 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB65 DUP2 DUP9 PUSH2 0xB03 JUMP JUMPDEST SWAP1 POP PUSH2 0xB74 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0xB3C JUMP JUMPDEST PUSH2 0xB81 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0xB3C JUMP JUMPDEST PUSH2 0xB8E PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xB3C JUMP JUMPDEST PUSH2 0xB9B PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0xB3C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBBB JUMPI PUSH2 0xBBA PUSH2 0x775 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xBC9 DUP5 DUP3 DUP6 ADD PUSH2 0x930 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBE7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB3C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xC2A DUP3 PUSH2 0xA01 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xC49 JUMPI PUSH2 0xC48 PUSH2 0xBF2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC5C PUSH2 0x76B JUMP JUMPDEST SWAP1 POP PUSH2 0xC68 DUP3 DUP3 PUSH2 0xC21 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC88 JUMPI PUSH2 0xC87 PUSH2 0xBF2 JUMP JUMPDEST JUMPDEST PUSH2 0xC91 DUP3 PUSH2 0xA01 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC0 PUSH2 0xCBB DUP5 PUSH2 0xC6D JUMP JUMPDEST PUSH2 0xC52 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xCDC JUMPI PUSH2 0xCDB PUSH2 0xBED JUMP JUMPDEST JUMPDEST PUSH2 0xCE7 DUP5 DUP3 DUP6 PUSH2 0xC9E JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD04 JUMPI PUSH2 0xD03 PUSH2 0x7A3 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xD14 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xCAD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD34 JUMPI PUSH2 0xD33 PUSH2 0x775 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD42 DUP6 DUP3 DUP7 ADD PUSH2 0x930 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD63 JUMPI PUSH2 0xD62 PUSH2 0x77A JUMP JUMPDEST JUMPDEST PUSH2 0xD6F DUP6 DUP3 DUP7 ADD PUSH2 0xCEF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0xC0 SUB DUP4 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0xDA4 JUMPI PUSH2 0xDA3 PUSH2 0xD79 JUMP JUMPDEST JUMPDEST DUP1 DUP4 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0xDCD JUMPI PUSH2 0xDCC PUSH2 0xD79 JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xDEF JUMPI PUSH2 0xDEE PUSH2 0xD7E JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0xE0B JUMPI PUSH2 0xE0A PUSH2 0xD83 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE5A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE6D JUMPI PUSH2 0xE6C PUSH2 0xE13 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0xED5 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0xE98 JUMP JUMPDEST PUSH2 0xEDF DUP7 DUP4 PUSH2 0xE98 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF1C PUSH2 0xF17 PUSH2 0xF12 DUP5 PUSH2 0x945 JUMP JUMPDEST PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0x945 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF36 DUP4 PUSH2 0xF01 JUMP JUMPDEST PUSH2 0xF4A PUSH2 0xF42 DUP3 PUSH2 0xF23 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0xEA5 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0xF5F PUSH2 0xF52 JUMP JUMPDEST PUSH2 0xF6A DUP2 DUP5 DUP5 PUSH2 0xF2D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF8E JUMPI PUSH2 0xF83 PUSH1 0x0 DUP3 PUSH2 0xF57 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0xF70 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xFD3 JUMPI PUSH2 0xFA4 DUP2 PUSH2 0xE73 JUMP JUMPDEST PUSH2 0xFAD DUP5 PUSH2 0xE88 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0xFBC JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0xFD0 PUSH2 0xFC8 DUP6 PUSH2 0xE88 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0xF6F JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFF6 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0xFD8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100F DUP4 DUP4 PUSH2 0xFE5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1028 DUP3 PUSH2 0x9BB JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1041 JUMPI PUSH2 0x1040 PUSH2 0xBF2 JUMP JUMPDEST JUMPDEST PUSH2 0x104B DUP3 SLOAD PUSH2 0xE42 JUMP JUMPDEST PUSH2 0x1056 DUP3 DUP3 DUP6 PUSH2 0xF92 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1089 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1077 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1081 DUP6 DUP3 PUSH2 0x1003 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x10E9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1097 DUP7 PUSH2 0xE73 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x10BF JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x109A JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x10DC JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x10D8 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0xFE5 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1100 PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x930 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1111 DUP2 PUSH2 0x90F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0xC0 SUB DUP4 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x1138 JUMPI PUSH2 0x1137 PUSH2 0x1117 JUMP JUMPDEST JUMPDEST DUP3 DUP2 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x116B JUMPI PUSH2 0x116A PUSH2 0x1117 JUMP JUMPDEST JUMPDEST DUP4 DUP2 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1193 JUMPI PUSH2 0x1192 PUSH2 0x1144 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x11A9 JUMPI PUSH2 0x11A8 PUSH2 0x1149 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11BD DUP4 DUP6 PUSH2 0x9C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x11CA DUP4 DUP6 DUP5 PUSH2 0xC9E JUMP JUMPDEST PUSH2 0x11D3 DUP4 PUSH2 0xA01 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11ED PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x966 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP4 ADD PUSH2 0x1208 PUSH1 0x0 DUP5 ADD DUP5 PUSH2 0x114E JUMP JUMPDEST DUP6 DUP4 SUB PUSH1 0x0 DUP8 ADD MSTORE PUSH2 0x121B DUP4 DUP3 DUP5 PUSH2 0x11B1 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x122C PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x1239 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH2 0x1247 PUSH1 0x40 DUP5 ADD DUP5 PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x1254 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH2 0x1262 PUSH1 0x60 DUP5 ADD DUP5 PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x126F PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH2 0x127D PUSH1 0x80 DUP5 ADD DUP5 PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x128A PUSH1 0x80 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP PUSH2 0x1298 PUSH1 0xA0 DUP5 ADD DUP5 PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x12A5 PUSH1 0xA0 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 ADD PUSH2 0x12C3 PUSH1 0x0 DUP5 ADD DUP5 PUSH2 0x10F1 JUMP JUMPDEST PUSH2 0x12D0 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x1108 JUMP JUMPDEST POP PUSH2 0x12DE PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x111C JUMP JUMPDEST DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x12F0 DUP3 DUP3 PUSH2 0x11F5 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1300 PUSH1 0x40 DUP5 ADD DUP5 PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x130D PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xA4B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1332 DUP2 DUP5 PUSH2 0x12B0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x13A3 DUP3 PUSH2 0x945 JUMP JUMPDEST SWAP2 POP PUSH2 0x13AE DUP4 PUSH2 0x945 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x13C6 JUMPI PUSH2 0x13C5 PUSH2 0x1369 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13D7 DUP3 PUSH2 0x945 JUMP JUMPDEST SWAP2 POP PUSH2 0x13E2 DUP4 PUSH2 0x945 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x13F0 DUP2 PUSH2 0x945 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1407 JUMPI PUSH2 0x1406 PUSH2 0x1369 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0x22 0xAD 0xB4 DUP9 DUP4 0x4A SDIV GASLIMIT 0xBA CALLDATASIZE CALLVALUE 0xEB COINBASE SDIV 0x28 LOG1 0xC1 0xD8 MOD DUP3 ADDRESS 0xD 0xE3 REVERT 0xE8 0xB0 PUSH12 0xB8179EA064736F6C63430008 SGT STOP CALLER ","sourceMap":"638:3951:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1555:663;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3113:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;687:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;3831:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3483:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2487:335;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1555:663;1889:4;:25;1894:11;:19;;;1889:25;;;;;;;;;;;1920:228;;;;;;;;1947:11;:18;;;;;;;;:::i;:::-;:24;;;;;;;;:::i;:::-;1920:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1986:11;:18;;;;;;;;:::i;:::-;:33;;;1920:228;;;;2034:11;:18;;;;;;;;:::i;:::-;:28;;;1920:228;;;;2076:11;:32;;;1920:228;;;;2123:15;1920:228;;;1889:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2178:11;:19;;;2164:47;2199:11;2164:47;;;;;;:::i;:::-;;;;;;;;1555:663;;;;;:::o;3113:169::-;3199:35;;:::i;:::-;3253:4;:14;3258:8;3253:14;;;;;;;;;;;3268:6;3253:22;;;;;;;;:::i;:::-;;;;;;;;;;;;3246:29;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3113:169;;;;:::o;687:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3831:169::-;3905:35;;:::i;:::-;3959:34;3984:8;3959:24;:34::i;:::-;3952:41;;3831:169;;;:::o;3483:127::-;3556:7;3582:4;:14;3587:8;3582:14;;;;;;;;;;;:21;;;;3575:28;;3483:127;;;:::o;2487:335::-;2643:27;2697:4;2692:1;2674:15;:19;;;;:::i;:::-;2673:28;;;;:::i;:::-;2643:58;;2711:4;:14;2716:8;2711:14;;;;;;;;;;;2731:83;;;;;;;;2745:6;2731:83;;;;2753:1;2731:83;;;;2756:19;2731:83;;;;2777:19;2731:83;;;;2798:15;2731:83;;;2711:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2571:251;2487:335;;:::o;4258:329::-;4333:35;;:::i;:::-;4409:1;4384:4;:14;4389:8;4384:14;;;;;;;;;;;:21;;;;:26;4380:102;;4434:36;;;;;;;;4448:9;;;;;;;;;;;;4434:36;;;;4459:1;4434:36;;;;4462:1;4434:36;;;;4465:1;4434:36;;;;4468:1;4434:36;;;4426:45;;;;4380:102;4508:4;:14;4513:8;4508:14;;;;;;;;;;;4547:1;4523:4;:14;4528:8;4523:14;;;;;;;;;;;:21;;;;:25;;;;:::i;:::-;4508:41;;;;;;;;:::i;:::-;;;;;;;;;;;;4491:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4258:329;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:75:3:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;493:243;578:5;619:2;610:6;605:3;601:16;597:25;594:112;;;625:79;;:::i;:::-;594:112;724:6;715:15;;493:243;;;;:::o;742:117::-;851:1;848;841:12;865:117;974:1;971;964:12;988:117;1097:1;1094;1087:12;1137:595;1237:8;1247:6;1297:3;1290:4;1282:6;1278:17;1274:27;1264:122;;1305:79;;:::i;:::-;1264:122;1418:6;1405:20;1395:30;;1448:18;1440:6;1437:30;1434:117;;;1470:79;;:::i;:::-;1434:117;1584:4;1576:6;1572:17;1560:29;;1638:3;1630:4;1622:6;1618:17;1608:8;1604:32;1601:41;1598:128;;;1645:79;;:::i;:::-;1598:128;1137:595;;;;;:::o;1764:::-;1864:8;1874:6;1924:3;1917:4;1909:6;1905:17;1901:27;1891:122;;1932:79;;:::i;:::-;1891:122;2045:6;2032:20;2022:30;;2075:18;2067:6;2064:30;2061:117;;;2097:79;;:::i;:::-;2061:117;2211:4;2203:6;2199:17;2187:29;;2265:3;2257:4;2249:6;2245:17;2235:8;2231:32;2228:41;2225:128;;;2272:79;;:::i;:::-;2225:128;1764:595;;;;;:::o;2365:1425::-;2589:6;2597;2605;2613;2621;2670:2;2658:9;2649:7;2645:23;2641:32;2638:119;;;2676:79;;:::i;:::-;2638:119;2824:1;2813:9;2809:17;2796:31;2854:18;2846:6;2843:30;2840:117;;;2876:79;;:::i;:::-;2840:117;2981:92;3065:7;3056:6;3045:9;3041:22;2981:92;:::i;:::-;2971:102;;2767:316;3150:2;3139:9;3135:18;3122:32;3181:18;3173:6;3170:30;3167:117;;;3203:79;;:::i;:::-;3167:117;3316:107;3415:7;3406:6;3395:9;3391:22;3316:107;:::i;:::-;3298:125;;;;3093:340;3500:2;3489:9;3485:18;3472:32;3531:18;3523:6;3520:30;3517:117;;;3553:79;;:::i;:::-;3517:117;3666:107;3765:7;3756:6;3745:9;3741:22;3666:107;:::i;:::-;3648:125;;;;3443:340;2365:1425;;;;;;;;:::o;3796:77::-;3833:7;3862:5;3851:16;;3796:77;;;:::o;3879:122::-;3952:24;3970:5;3952:24;:::i;:::-;3945:5;3942:35;3932:63;;3991:1;3988;3981:12;3932:63;3879:122;:::o;4007:139::-;4053:5;4091:6;4078:20;4069:29;;4107:33;4134:5;4107:33;:::i;:::-;4007:139;;;;:::o;4152:77::-;4189:7;4218:5;4207:16;;4152:77;;;:::o;4235:122::-;4308:24;4326:5;4308:24;:::i;:::-;4301:5;4298:35;4288:63;;4347:1;4344;4337:12;4288:63;4235:122;:::o;4363:139::-;4409:5;4447:6;4434:20;4425:29;;4463:33;4490:5;4463:33;:::i;:::-;4363:139;;;;:::o;4508:474::-;4576:6;4584;4633:2;4621:9;4612:7;4608:23;4604:32;4601:119;;;4639:79;;:::i;:::-;4601:119;4759:1;4784:53;4829:7;4820:6;4809:9;4805:22;4784:53;:::i;:::-;4774:63;;4730:117;4886:2;4912:53;4957:7;4948:6;4937:9;4933:22;4912:53;:::i;:::-;4902:63;;4857:118;4508:474;;;;;:::o;4988:98::-;5039:6;5073:5;5067:12;5057:22;;4988:98;;;:::o;5092:158::-;5165:11;5199:6;5194:3;5187:19;5239:4;5234:3;5230:14;5215:29;;5092:158;;;;:::o;5256:246::-;5337:1;5347:113;5361:6;5358:1;5355:13;5347:113;;;5446:1;5441:3;5437:11;5431:18;5427:1;5422:3;5418:11;5411:39;5383:2;5380:1;5376:10;5371:15;;5347:113;;;5494:1;5485:6;5480:3;5476:16;5469:27;5318:184;5256:246;;;:::o;5508:102::-;5549:6;5600:2;5596:7;5591:2;5584:5;5580:14;5576:28;5566:38;;5508:102;;;:::o;5616:353::-;5692:3;5720:38;5752:5;5720:38;:::i;:::-;5774:60;5827:6;5822:3;5774:60;:::i;:::-;5767:67;;5843:65;5901:6;5896:3;5889:4;5882:5;5878:16;5843:65;:::i;:::-;5933:29;5955:6;5933:29;:::i;:::-;5928:3;5924:39;5917:46;;5696:273;5616:353;;;;:::o;5975:108::-;6052:24;6070:5;6052:24;:::i;:::-;6047:3;6040:37;5975:108;;:::o;6179:1178::-;6308:3;6344:4;6339:3;6335:14;6432:4;6425:5;6421:16;6415:23;6485:3;6479:4;6475:14;6468:4;6463:3;6459:14;6452:38;6511:71;6577:4;6563:12;6511:71;:::i;:::-;6503:79;;6359:234;6676:4;6669:5;6665:16;6659:23;6695:63;6752:4;6747:3;6743:14;6729:12;6695:63;:::i;:::-;6603:165;6864:4;6857:5;6853:16;6847:23;6883:63;6940:4;6935:3;6931:14;6917:12;6883:63;:::i;:::-;6778:178;7054:4;7047:5;7043:16;7037:23;7073:63;7130:4;7125:3;7121:14;7107:12;7073:63;:::i;:::-;6966:180;7238:4;7231:5;7227:16;7221:23;7257:63;7314:4;7309:3;7305:14;7291:12;7257:63;:::i;:::-;7156:174;7347:4;7340:11;;6313:1044;6179:1178;;;;:::o;7363:393::-;7516:4;7554:2;7543:9;7539:18;7531:26;;7603:9;7597:4;7593:20;7589:1;7578:9;7574:17;7567:47;7631:118;7744:4;7735:6;7631:118;:::i;:::-;7623:126;;7363:393;;;;:::o;7762:168::-;7845:11;7879:6;7874:3;7867:19;7919:4;7914:3;7910:14;7895:29;;7762:168;;;;:::o;7936:373::-;8022:3;8050:38;8082:5;8050:38;:::i;:::-;8104:70;8167:6;8162:3;8104:70;:::i;:::-;8097:77;;8183:65;8241:6;8236:3;8229:4;8222:5;8218:16;8183:65;:::i;:::-;8273:29;8295:6;8273:29;:::i;:::-;8268:3;8264:39;8257:46;;8026:283;7936:373;;;;:::o;8315:118::-;8402:24;8420:5;8402:24;:::i;:::-;8397:3;8390:37;8315:118;;:::o;8439:751::-;8662:4;8700:3;8689:9;8685:19;8677:27;;8750:9;8744:4;8740:20;8736:1;8725:9;8721:17;8714:47;8778:76;8849:4;8840:6;8778:76;:::i;:::-;8770:84;;8864:72;8932:2;8921:9;8917:18;8908:6;8864:72;:::i;:::-;8946;9014:2;9003:9;8999:18;8990:6;8946:72;:::i;:::-;9028;9096:2;9085:9;9081:18;9072:6;9028:72;:::i;:::-;9110:73;9178:3;9167:9;9163:19;9154:6;9110:73;:::i;:::-;8439:751;;;;;;;;:::o;9196:329::-;9255:6;9304:2;9292:9;9283:7;9279:23;9275:32;9272:119;;;9310:79;;:::i;:::-;9272:119;9430:1;9455:53;9500:7;9491:6;9480:9;9476:22;9455:53;:::i;:::-;9445:63;;9401:117;9196:329;;;;:::o;9531:222::-;9624:4;9662:2;9651:9;9647:18;9639:26;;9675:71;9743:1;9732:9;9728:17;9719:6;9675:71;:::i;:::-;9531:222;;;;:::o;9759:117::-;9868:1;9865;9858:12;9882:180;9930:77;9927:1;9920:88;10027:4;10024:1;10017:15;10051:4;10048:1;10041:15;10068:281;10151:27;10173:4;10151:27;:::i;:::-;10143:6;10139:40;10281:6;10269:10;10266:22;10245:18;10233:10;10230:34;10227:62;10224:88;;;10292:18;;:::i;:::-;10224:88;10332:10;10328:2;10321:22;10111:238;10068:281;;:::o;10355:129::-;10389:6;10416:20;;:::i;:::-;10406:30;;10445:33;10473:4;10465:6;10445:33;:::i;:::-;10355:129;;;:::o;10490:307::-;10551:4;10641:18;10633:6;10630:30;10627:56;;;10663:18;;:::i;:::-;10627:56;10701:29;10723:6;10701:29;:::i;:::-;10693:37;;10785:4;10779;10775:15;10767:23;;10490:307;;;:::o;10803:146::-;10900:6;10895:3;10890;10877:30;10941:1;10932:6;10927:3;10923:16;10916:27;10803:146;;;:::o;10955:423::-;11032:5;11057:65;11073:48;11114:6;11073:48;:::i;:::-;11057:65;:::i;:::-;11048:74;;11145:6;11138:5;11131:21;11183:4;11176:5;11172:16;11221:3;11212:6;11207:3;11203:16;11200:25;11197:112;;;11228:79;;:::i;:::-;11197:112;11318:54;11365:6;11360:3;11355;11318:54;:::i;:::-;11038:340;10955:423;;;;;:::o;11397:338::-;11452:5;11501:3;11494:4;11486:6;11482:17;11478:27;11468:122;;11509:79;;:::i;:::-;11468:122;11626:6;11613:20;11651:78;11725:3;11717:6;11710:4;11702:6;11698:17;11651:78;:::i;:::-;11642:87;;11458:277;11397:338;;;;:::o;11741:652::-;11818:6;11826;11875:2;11863:9;11854:7;11850:23;11846:32;11843:119;;;11881:79;;:::i;:::-;11843:119;12001:1;12026:53;12071:7;12062:6;12051:9;12047:22;12026:53;:::i;:::-;12016:63;;11972:117;12156:2;12145:9;12141:18;12128:32;12187:18;12179:6;12176:30;12173:117;;;12209:79;;:::i;:::-;12173:117;12314:62;12368:7;12359:6;12348:9;12344:22;12314:62;:::i;:::-;12304:72;;12099:287;11741:652;;;;;:::o;12399:117::-;12508:1;12505;12498:12;12522:117;12631:1;12628;12621:12;12645:117;12754:1;12751;12744:12;12768:394;12862:4;12916:11;12903:25;13016:1;13010:4;13006:12;12995:8;12979:14;12975:29;12971:48;12951:18;12947:73;12937:168;;13024:79;;:::i;:::-;12937:168;13136:18;13126:8;13122:33;13114:41;;12867:295;12768:394;;;;:::o;13168:724::-;13245:4;13251:6;13307:11;13294:25;13407:1;13401:4;13397:12;13386:8;13370:14;13366:29;13362:48;13342:18;13338:73;13328:168;;13415:79;;:::i;:::-;13328:168;13527:18;13517:8;13513:33;13505:41;;13579:4;13566:18;13556:28;;13607:18;13599:6;13596:30;13593:117;;;13629:79;;:::i;:::-;13593:117;13737:2;13731:4;13727:13;13719:21;;13794:4;13786:6;13782:17;13766:14;13762:38;13756:4;13752:49;13749:136;;;13804:79;;:::i;:::-;13749:136;13258:634;13168:724;;;;;:::o;13898:180::-;13946:77;13943:1;13936:88;14043:4;14040:1;14033:15;14067:4;14064:1;14057:15;14084:320;14128:6;14165:1;14159:4;14155:12;14145:22;;14212:1;14206:4;14202:12;14233:18;14223:81;;14289:4;14281:6;14277:17;14267:27;;14223:81;14351:2;14343:6;14340:14;14320:18;14317:38;14314:84;;14370:18;;:::i;:::-;14314:84;14135:269;14084:320;;;:::o;14410:140::-;14458:4;14481:3;14473:11;;14504:3;14501:1;14494:14;14538:4;14535:1;14525:18;14517:26;;14410:140;;;:::o;14556:93::-;14593:6;14640:2;14635;14628:5;14624:14;14620:23;14610:33;;14556:93;;;:::o;14655:107::-;14699:8;14749:5;14743:4;14739:16;14718:37;;14655:107;;;;:::o;14768:393::-;14837:6;14887:1;14875:10;14871:18;14910:97;14940:66;14929:9;14910:97;:::i;:::-;15028:39;15058:8;15047:9;15028:39;:::i;:::-;15016:51;;15100:4;15096:9;15089:5;15085:21;15076:30;;15149:4;15139:8;15135:19;15128:5;15125:30;15115:40;;14844:317;;14768:393;;;;;:::o;15167:60::-;15195:3;15216:5;15209:12;;15167:60;;;:::o;15233:142::-;15283:9;15316:53;15334:34;15343:24;15361:5;15343:24;:::i;:::-;15334:34;:::i;:::-;15316:53;:::i;:::-;15303:66;;15233:142;;;:::o;15381:75::-;15424:3;15445:5;15438:12;;15381:75;;;:::o;15462:269::-;15572:39;15603:7;15572:39;:::i;:::-;15633:91;15682:41;15706:16;15682:41;:::i;:::-;15674:6;15667:4;15661:11;15633:91;:::i;:::-;15627:4;15620:105;15538:193;15462:269;;;:::o;15737:73::-;15782:3;15737:73;:::o;15816:189::-;15893:32;;:::i;:::-;15934:65;15992:6;15984;15978:4;15934:65;:::i;:::-;15869:136;15816:189;;:::o;16011:186::-;16071:120;16088:3;16081:5;16078:14;16071:120;;;16142:39;16179:1;16172:5;16142:39;:::i;:::-;16115:1;16108:5;16104:13;16095:22;;16071:120;;;16011:186;;:::o;16203:541::-;16303:2;16298:3;16295:11;16292:445;;;16337:37;16368:5;16337:37;:::i;:::-;16420:29;16438:10;16420:29;:::i;:::-;16410:8;16406:44;16603:2;16591:10;16588:18;16585:49;;;16624:8;16609:23;;16585:49;16647:80;16703:22;16721:3;16703:22;:::i;:::-;16693:8;16689:37;16676:11;16647:80;:::i;:::-;16307:430;;16292:445;16203:541;;;:::o;16750:117::-;16804:8;16854:5;16848:4;16844:16;16823:37;;16750:117;;;;:::o;16873:169::-;16917:6;16950:51;16998:1;16994:6;16986:5;16983:1;16979:13;16950:51;:::i;:::-;16946:56;17031:4;17025;17021:15;17011:25;;16924:118;16873:169;;;;:::o;17047:295::-;17123:4;17269:29;17294:3;17288:4;17269:29;:::i;:::-;17261:37;;17331:3;17328:1;17324:11;17318:4;17315:21;17307:29;;17047:295;;;;:::o;17347:1390::-;17462:36;17494:3;17462:36;:::i;:::-;17563:18;17555:6;17552:30;17549:56;;;17585:18;;:::i;:::-;17549:56;17629:38;17661:4;17655:11;17629:38;:::i;:::-;17714:66;17773:6;17765;17759:4;17714:66;:::i;:::-;17807:1;17831:4;17818:17;;17863:2;17855:6;17852:14;17880:1;17875:617;;;;18536:1;18553:6;18550:77;;;18602:9;18597:3;18593:19;18587:26;18578:35;;18550:77;18653:67;18713:6;18706:5;18653:67;:::i;:::-;18647:4;18640:81;18509:222;17845:886;;17875:617;17927:4;17923:9;17915:6;17911:22;17961:36;17992:4;17961:36;:::i;:::-;18019:1;18033:208;18047:7;18044:1;18041:14;18033:208;;;18126:9;18121:3;18117:19;18111:26;18103:6;18096:42;18177:1;18169:6;18165:14;18155:24;;18224:2;18213:9;18209:18;18196:31;;18070:4;18067:1;18063:12;18058:17;;18033:208;;;18269:6;18260:7;18257:19;18254:179;;;18327:9;18322:3;18318:19;18312:26;18370:48;18412:4;18404:6;18400:17;18389:9;18370:48;:::i;:::-;18362:6;18355:64;18277:156;18254:179;18479:1;18475;18467:6;18463:14;18459:22;18453:4;18446:36;17882:610;;;17845:886;;17437:1300;;;17347:1390;;:::o;18743:122::-;18795:5;18820:39;18855:2;18850:3;18846:12;18841:3;18820:39;:::i;:::-;18811:48;;18743:122;;;;:::o;18871:108::-;18948:24;18966:5;18948:24;:::i;:::-;18943:3;18936:37;18871:108;;:::o;18985:117::-;19094:1;19091;19084:12;19108:375;19189:5;19244:3;19231:17;19336:1;19330:4;19326:12;19315:8;19299:14;19295:29;19291:48;19271:18;19267:73;19257:168;;19344:79;;:::i;:::-;19257:168;19467:8;19447:18;19443:33;19434:42;;19195:288;19108:375;;;;:::o;19489:117::-;19598:1;19595;19588:12;19612:117;19721:1;19718;19711:12;19735:711;19799:5;19806:6;19862:3;19849:17;19954:1;19948:4;19944:12;19933:8;19917:14;19913:29;19909:48;19889:18;19885:73;19875:168;;19962:79;;:::i;:::-;19875:168;20085:8;20065:18;20061:33;20052:42;;20127:5;20114:19;20104:29;;20162:4;20155:5;20151:16;20142:25;;20190:18;20182:6;20179:30;20176:117;;;20212:79;;:::i;:::-;20176:117;20348:4;20340:6;20336:17;20320:14;20316:38;20309:5;20305:50;20302:137;;;20358:79;;:::i;:::-;20302:137;19813:633;19735:711;;;;;:::o;20474:294::-;20560:3;20581:60;20634:6;20629:3;20581:60;:::i;:::-;20574:67;;20651:56;20700:6;20695:3;20688:5;20651:56;:::i;:::-;20732:29;20754:6;20732:29;:::i;:::-;20727:3;20723:39;20716:46;;20474:294;;;;;:::o;20774:122::-;20826:5;20851:39;20886:2;20881:3;20877:12;20872:3;20851:39;:::i;:::-;20842:48;;20774:122;;;;:::o;20948:1553::-;21061:3;21097:4;21092:3;21088:14;21182:61;21237:4;21230:5;21226:16;21219:5;21182:61;:::i;:::-;21290:3;21284:4;21280:14;21273:4;21268:3;21264:14;21257:38;21316:87;21398:4;21384:12;21370;21316:87;:::i;:::-;21308:95;;21112:302;;21484:50;21528:4;21521:5;21517:16;21510:5;21484:50;:::i;:::-;21547:63;21604:4;21599:3;21595:14;21581:12;21547:63;:::i;:::-;21424:196;21695:50;21739:4;21732:5;21728:16;21721:5;21695:50;:::i;:::-;21758:63;21815:4;21810:3;21806:14;21792:12;21758:63;:::i;:::-;21630:201;21909:50;21953:4;21946:5;21942:16;21935:5;21909:50;:::i;:::-;21972:63;22029:4;22024:3;22020:14;22006:12;21972:63;:::i;:::-;21841:204;22119:50;22163:4;22156:5;22152:16;22145:5;22119:50;:::i;:::-;22182:63;22239:4;22234:3;22230:14;22216:12;22182:63;:::i;:::-;22055:200;22338:50;22382:4;22375:5;22371:16;22364:5;22338:50;:::i;:::-;22401:63;22458:4;22453:3;22449:14;22435:12;22401:63;:::i;:::-;22265:209;22491:4;22484:11;;21066:1435;20948:1553;;;;:::o;22575:970::-;22720:3;22756:4;22751:3;22747:14;22829:50;22873:4;22866:5;22862:16;22855:5;22829:50;:::i;:::-;22892:63;22949:4;22944:3;22940:14;22926:12;22892:63;:::i;:::-;22771:194;23032:78;23104:4;23097:5;23093:16;23086:5;23032:78;:::i;:::-;23157:3;23151:4;23147:14;23140:4;23135:3;23131:14;23124:38;23183:107;23285:4;23271:12;23183:107;:::i;:::-;23175:115;;22975:326;23382:50;23426:4;23419:5;23415:16;23408:5;23382:50;:::i;:::-;23445:63;23502:4;23497:3;23493:14;23479:12;23445:63;:::i;:::-;23311:207;23535:4;23528:11;;22725:820;22575:970;;;;:::o;23551:425::-;23720:4;23758:2;23747:9;23743:18;23735:26;;23807:9;23801:4;23797:20;23793:1;23782:9;23778:17;23771:47;23835:134;23964:4;23955:6;23835:134;:::i;:::-;23827:142;;23551:425;;;;:::o;23982:180::-;24030:77;24027:1;24020:88;24127:4;24124:1;24117:15;24151:4;24148:1;24141:15;24168:180;24216:77;24213:1;24206:88;24313:4;24310:1;24303:15;24337:4;24334:1;24327:15;24354:194;24394:4;24414:20;24432:1;24414:20;:::i;:::-;24409:25;;24448:20;24466:1;24448:20;:::i;:::-;24443:25;;24492:1;24489;24485:9;24477:17;;24516:1;24510:4;24507:11;24504:37;;;24521:18;;:::i;:::-;24504:37;24354:194;;;;:::o;24554:410::-;24594:7;24617:20;24635:1;24617:20;:::i;:::-;24612:25;;24651:20;24669:1;24651:20;:::i;:::-;24646:25;;24706:1;24703;24699:9;24728:30;24746:11;24728:30;:::i;:::-;24717:41;;24907:1;24898:7;24894:15;24891:1;24888:22;24868:1;24861:9;24841:83;24818:139;;24937:18;;:::i;:::-;24818:139;24602:362;24554:410;;;;:::o"},"methodIdentifiers":{"data(bytes32,uint256)":"8d12c426","getAggregateByIndex(bytes32,uint256)":"717681c6","getAggregateValueCount(bytes32)":"e3ac7e11","getCurrentAggregateData(bytes32)":"cb956711","updateOracleData((bytes32,(bytes,uint256,uint256,uint256,uint256,uint256),uint256),(address,uint256)[],(uint8,bytes32,bytes32)[])":"61808010","updateOracleDataPlayground(bytes32,bytes)":"f237640a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"queryId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"queryId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aggregatePower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"previousTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nextTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastConsensusTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct ReportData\",\"name\":\"report\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"attestationTimestamp\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct OracleAttestationData\",\"name\":\"attestData\",\"type\":\"tuple\"}],\"name\":\"OracleUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"data\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aggregateTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"attestationTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"relayTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_queryId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getAggregateByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aggregateTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"attestationTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"relayTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct DataBankPlayground.AggregateData\",\"name\":\"_aggregateData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_queryId\",\"type\":\"bytes32\"}],\"name\":\"getAggregateValueCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_queryId\",\"type\":\"bytes32\"}],\"name\":\"getCurrentAggregateData\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aggregateTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"attestationTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"relayTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct DataBankPlayground.AggregateData\",\"name\":\"_aggregateData\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"queryId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aggregatePower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"previousTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nextTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastConsensusTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct ReportData\",\"name\":\"report\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"attestationTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct OracleAttestationData\",\"name\":\"_attestData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"updateOracleData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_queryId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_value\",\"type\":\"bytes\"}],\"name\":\"updateOracleDataPlayground\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Tellor Inc.\",\"details\":\"This contract is used to store data for multiple data feeds. It has no data bridge validation, and is used for testing simple tellor integrations. This contract skips data verification and is NOT for production use. For production contracts, use TellorDataBridge verification. See SampleLayerUser repo for usage examples: https://github.com/tellor-io/SampleLayerUser\",\"kind\":\"dev\",\"methods\":{\"getAggregateByIndex(bytes32,uint256)\":{\"details\":\"returns the aggregate data for a given query ID and index\",\"params\":{\"_index\":\"the index of the aggregate data to get\",\"_queryId\":\"the query ID to get the aggregate data for\"},\"returns\":{\"_aggregateData\":\"the aggregate data\"}},\"getAggregateValueCount(bytes32)\":{\"details\":\"returns the total number of aggregate values\",\"params\":{\"_queryId\":\"the query ID to get the aggregate value count for\"},\"returns\":{\"_0\":\"number of aggregate values stored\"}},\"getCurrentAggregateData(bytes32)\":{\"details\":\"returns the current aggregate data for a given query ID\",\"params\":{\"_queryId\":\"the query ID to get the current aggregate data for\"},\"returns\":{\"_aggregateData\":\"the current aggregate data\"}},\"updateOracleData((bytes32,(bytes,uint256,uint256,uint256,uint256,uint256),uint256),(address,uint256)[],(uint8,bytes32,bytes32)[])\":{\"details\":\"updates oracle data with new attestation data after verification\",\"params\":{\"_attestData\":\"the oracle attestation data to be stored note: _currentValidatorSet array of current validators (unused for testing) note: _sigs array of validator signatures (unused for testing)\"}},\"updateOracleDataPlayground(bytes32,bytes)\":{\"details\":\"updates oracle data with new attestation data for playground without needing to format data structs\",\"params\":{\"_queryId\":\"the query ID to update the oracle data for\",\"_value\":\"the value to update the oracle data with\"}}},\"title\":\"DataBankPlayground\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Testing contract for rapid prototyping with Tellor oracle data\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testing/DataBankPlayground.sol\":\"DataBankPlayground\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ITellorDataBridge.sol\":{\"keccak256\":\"0xe63280ed178d0751b9eba8be5c98a7c1587fcf728c8c2cb2f9d261fc4a650d0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a16c3e825c0ad4eb206765656249fb21f3fbe23eb6ad64dac036eb084f215d9\",\"dweb:/ipfs/QmV3de6xCgd864FEhjbiPyTUNhYgB4hPAvwEu8koYoZHwG\"]},\"contracts/testing/DataBankPlayground.sol\":{\"keccak256\":\"0x8dfe63427f26d0485203301f52bb9c37c99201831745375ae5473108924aae1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://215411b598aa897c2be28b3284ba886a3534ce271ee98a696d0d4044c65be0b1\",\"dweb:/ipfs/QmZqHUwBRLVM7RjWfpUJRraeauTq6ZQT1gQvayjtQT2F2C\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/contracts/interfaces/IDataBankPlayground.sol/IDataBankPlayground.dbg.json b/artifacts/contracts/interfaces/IDataBankPlayground.sol/IDataBankPlayground.dbg.json new file mode 100644 index 0000000..e9784a8 --- /dev/null +++ b/artifacts/contracts/interfaces/IDataBankPlayground.sol/IDataBankPlayground.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/ebdb99267cd32cea6219218999245ca2.json" +} diff --git a/artifacts/contracts/interfaces/IDataBankPlayground.sol/IDataBankPlayground.json b/artifacts/contracts/interfaces/IDataBankPlayground.sol/IDataBankPlayground.json new file mode 100644 index 0000000..cf5858f --- /dev/null +++ b/artifacts/contracts/interfaces/IDataBankPlayground.sol/IDataBankPlayground.json @@ -0,0 +1,145 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IDataBankPlayground", + "sourceName": "contracts/interfaces/IDataBankPlayground.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_queryId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "_index", + "type": "uint256" + } + ], + "name": "getAggregateByIndex", + "outputs": [ + { + "components": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "power", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aggregateTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "attestationTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "relayTimestamp", + "type": "uint256" + } + ], + "internalType": "struct IDataBankPlayground.AggregateData", + "name": "_aggregateData", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_queryId", + "type": "bytes32" + } + ], + "name": "getAggregateValueCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_queryId", + "type": "bytes32" + } + ], + "name": "getCurrentAggregateData", + "outputs": [ + { + "components": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "power", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aggregateTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "attestationTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "relayTimestamp", + "type": "uint256" + } + ], + "internalType": "struct IDataBankPlayground.AggregateData", + "name": "_aggregateData", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_queryId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_value", + "type": "bytes" + } + ], + "name": "updateOracleDataPlayground", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testing/DataBankPlayground.sol/DataBankPlayground.dbg.json b/artifacts/contracts/testing/DataBankPlayground.sol/DataBankPlayground.dbg.json new file mode 100644 index 0000000..e9784a8 --- /dev/null +++ b/artifacts/contracts/testing/DataBankPlayground.sol/DataBankPlayground.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/ebdb99267cd32cea6219218999245ca2.json" +} diff --git a/artifacts/contracts/testing/DataBankPlayground.sol/DataBankPlayground.json b/artifacts/contracts/testing/DataBankPlayground.sol/DataBankPlayground.json new file mode 100644 index 0000000..c27b61c --- /dev/null +++ b/artifacts/contracts/testing/DataBankPlayground.sol/DataBankPlayground.json @@ -0,0 +1,358 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "DataBankPlayground", + "sourceName": "contracts/testing/DataBankPlayground.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "queryId", + "type": "bytes32" + }, + { + "components": [ + { + "internalType": "bytes32", + "name": "queryId", + "type": "bytes32" + }, + { + "components": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aggregatePower", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "previousTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "nextTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastConsensusTimestamp", + "type": "uint256" + } + ], + "internalType": "struct ReportData", + "name": "report", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "attestationTimestamp", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct OracleAttestationData", + "name": "attestData", + "type": "tuple" + } + ], + "name": "OracleUpdated", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "data", + "outputs": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "power", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aggregateTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "attestationTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "relayTimestamp", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_queryId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "_index", + "type": "uint256" + } + ], + "name": "getAggregateByIndex", + "outputs": [ + { + "components": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "power", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aggregateTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "attestationTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "relayTimestamp", + "type": "uint256" + } + ], + "internalType": "struct DataBankPlayground.AggregateData", + "name": "_aggregateData", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_queryId", + "type": "bytes32" + } + ], + "name": "getAggregateValueCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_queryId", + "type": "bytes32" + } + ], + "name": "getCurrentAggregateData", + "outputs": [ + { + "components": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "power", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aggregateTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "attestationTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "relayTimestamp", + "type": "uint256" + } + ], + "internalType": "struct DataBankPlayground.AggregateData", + "name": "_aggregateData", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "queryId", + "type": "bytes32" + }, + { + "components": [ + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aggregatePower", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "previousTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "nextTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastConsensusTimestamp", + "type": "uint256" + } + ], + "internalType": "struct ReportData", + "name": "report", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "attestationTimestamp", + "type": "uint256" + } + ], + "internalType": "struct OracleAttestationData", + "name": "_attestData", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "power", + "type": "uint256" + } + ], + "internalType": "struct Validator[]", + "name": "", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "internalType": "struct Signature[]", + "name": "", + "type": "tuple[]" + } + ], + "name": "updateOracleData", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_queryId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_value", + "type": "bytes" + } + ], + "name": "updateOracleDataPlayground", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50611444806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80636180801014610067578063717681c6146100835780638d12c426146100b3578063cb956711146100e7578063e3ac7e1114610117578063f237640a14610147575b600080fd5b610081600480360381019061007c919061085e565b610163565b005b61009d6004803603810190610098919061097b565b6102d7565b6040516100aa9190610ad0565b60405180910390f35b6100cd60048036038101906100c8919061097b565b6103de565b6040516100de959493929190610b4b565b60405180910390f35b61010160048036038101906100fc9190610ba5565b6104b9565b60405161010e9190610ad0565b60405180910390f35b610131600480360381019061012c9190610ba5565b6104d1565b60405161013e9190610bd2565b60405180910390f35b610161600480360381019061015c9190610d1d565b6104f0565b005b600080866000013581526020019081526020016000206040518060a001604052808780602001906101949190610d88565b80600001906101a39190610db0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018780602001906101fb9190610d88565b6040013581526020018780602001906102149190610d88565b602001358152602001876040013581526020014281525090806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000019081610269919061101f565b5060208201518160010155604082015181600201556060820151816003015560808201518160040155505084600001357f32569c122e0d7a43079203df1373675696c8ccd8ca67de60dc2238b6bb226214866040516102c89190611318565b60405180910390a25050505050565b6102df61073c565b60008084815260200190815260200160002082815481106103035761030261133a565b5b90600052602060002090600502016040518060a001604052908160008201805461032c90610e42565b80601f016020809104026020016040519081016040528092919081815260200182805461035890610e42565b80156103a55780601f1061037a576101008083540402835291602001916103a5565b820191906000526020600020905b81548152906001019060200180831161038857829003601f168201915b50505050508152602001600182015481526020016002820154815260200160038201548152602001600482015481525050905092915050565b600060205281600052604060002081815481106103fa57600080fd5b90600052602060002090600502016000915091505080600001805461041e90610e42565b80601f016020809104026020016040519081016040528092919081815260200182805461044a90610e42565b80156104975780601f1061046c57610100808354040283529160200191610497565b820191906000526020600020905b81548152906001019060200180831161047a57829003601f168201915b5050505050908060010154908060020154908060030154908060040154905085565b6104c161073c565b6104ca826105b6565b9050919050565b6000806000838152602001908152602001600020805490509050919050565b60006103e86001426105029190611398565b61050c91906113cc565b90506000808481526020019081526020016000206040518060a00160405280848152602001600081526020018381526020018381526020014281525090806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000019081610586919061101f565b50602082015181600101556040820151816002015560608201518160030155608082015181600401555050505050565b6105be61073c565b6000806000848152602001908152602001600020805490500361061c576040518060a0016040528060405180602001604052806000815250815260200160008152602001600081526020016000815260200160008152509050610737565b6000808381526020019081526020016000206001600080858152602001908152602001600020805490506106509190611398565b815481106106615761066061133a565b5b90600052602060002090600502016040518060a001604052908160008201805461068a90610e42565b80601f01602080910402602001604051908101604052809291908181526020018280546106b690610e42565b80156107035780601f106106d857610100808354040283529160200191610703565b820191906000526020600020905b8154815290600101906020018083116106e657829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505090505b919050565b6040518060a0016040528060608152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b60006060828403121561079a5761079961077f565b5b81905092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126107c8576107c76107a3565b5b8235905067ffffffffffffffff8111156107e5576107e46107a8565b5b602083019150836040820283011115610801576108006107ad565b5b9250929050565b60008083601f84011261081e5761081d6107a3565b5b8235905067ffffffffffffffff81111561083b5761083a6107a8565b5b602083019150836060820283011115610857576108566107ad565b5b9250929050565b60008060008060006060868803121561087a57610879610775565b5b600086013567ffffffffffffffff8111156108985761089761077a565b5b6108a488828901610784565b955050602086013567ffffffffffffffff8111156108c5576108c461077a565b5b6108d1888289016107b2565b9450945050604086013567ffffffffffffffff8111156108f4576108f361077a565b5b61090088828901610808565b92509250509295509295909350565b6000819050919050565b6109228161090f565b811461092d57600080fd5b50565b60008135905061093f81610919565b92915050565b6000819050919050565b61095881610945565b811461096357600080fd5b50565b6000813590506109758161094f565b92915050565b6000806040838503121561099257610991610775565b5b60006109a085828601610930565b92505060206109b185828601610966565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109f55780820151818401526020810190506109da565b60008484015250505050565b6000601f19601f8301169050919050565b6000610a1d826109bb565b610a2781856109c6565b9350610a378185602086016109d7565b610a4081610a01565b840191505092915050565b610a5481610945565b82525050565b600060a0830160008301518482036000860152610a778282610a12565b9150506020830151610a8c6020860182610a4b565b506040830151610a9f6040860182610a4b565b506060830151610ab26060860182610a4b565b506080830151610ac56080860182610a4b565b508091505092915050565b60006020820190508181036000830152610aea8184610a5a565b905092915050565b600082825260208201905092915050565b6000610b0e826109bb565b610b188185610af2565b9350610b288185602086016109d7565b610b3181610a01565b840191505092915050565b610b4581610945565b82525050565b600060a0820190508181036000830152610b658188610b03565b9050610b746020830187610b3c565b610b816040830186610b3c565b610b8e6060830185610b3c565b610b9b6080830184610b3c565b9695505050505050565b600060208284031215610bbb57610bba610775565b5b6000610bc984828501610930565b91505092915050565b6000602082019050610be76000830184610b3c565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c2a82610a01565b810181811067ffffffffffffffff82111715610c4957610c48610bf2565b5b80604052505050565b6000610c5c61076b565b9050610c688282610c21565b919050565b600067ffffffffffffffff821115610c8857610c87610bf2565b5b610c9182610a01565b9050602081019050919050565b82818337600083830152505050565b6000610cc0610cbb84610c6d565b610c52565b905082815260208101848484011115610cdc57610cdb610bed565b5b610ce7848285610c9e565b509392505050565b600082601f830112610d0457610d036107a3565b5b8135610d14848260208601610cad565b91505092915050565b60008060408385031215610d3457610d33610775565b5b6000610d4285828601610930565b925050602083013567ffffffffffffffff811115610d6357610d6261077a565b5b610d6f85828601610cef565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008235600160c003833603038112610da457610da3610d79565b5b80830191505092915050565b60008083356001602003843603038112610dcd57610dcc610d79565b5b80840192508235915067ffffffffffffffff821115610def57610dee610d7e565b5b602083019250600182023603831315610e0b57610e0a610d83565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e5a57607f821691505b602082108103610e6d57610e6c610e13565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302610ed57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610e98565b610edf8683610e98565b95508019841693508086168417925050509392505050565b6000819050919050565b6000610f1c610f17610f1284610945565b610ef7565b610945565b9050919050565b6000819050919050565b610f3683610f01565b610f4a610f4282610f23565b848454610ea5565b825550505050565b600090565b610f5f610f52565b610f6a818484610f2d565b505050565b5b81811015610f8e57610f83600082610f57565b600181019050610f70565b5050565b601f821115610fd357610fa481610e73565b610fad84610e88565b81016020851015610fbc578190505b610fd0610fc885610e88565b830182610f6f565b50505b505050565b600082821c905092915050565b6000610ff660001984600802610fd8565b1980831691505092915050565b600061100f8383610fe5565b9150826002028217905092915050565b611028826109bb565b67ffffffffffffffff81111561104157611040610bf2565b5b61104b8254610e42565b611056828285610f92565b600060209050601f8311600181146110895760008415611077578287015190505b6110818582611003565b8655506110e9565b601f19841661109786610e73565b60005b828110156110bf5784890151825560018201915060208501945060208101905061109a565b868310156110dc57848901516110d8601f891682610fe5565b8355505b6001600288020188555050505b505050505050565b60006111006020840184610930565b905092915050565b6111118161090f565b82525050565b600080fd5b60008235600160c00383360303811261113857611137611117565b5b82810191505092915050565b600080fd5b600080fd5b6000808335600160200384360303811261116b5761116a611117565b5b83810192508235915060208301925067ffffffffffffffff82111561119357611192611144565b5b6001820236038313156111a9576111a8611149565b5b509250929050565b60006111bd83856109c6565b93506111ca838584610c9e565b6111d383610a01565b840190509392505050565b60006111ed6020840184610966565b905092915050565b600060c08301611208600084018461114e565b858303600087015261121b8382846111b1565b9250505061122c60208401846111de565b6112396020860182610a4b565b5061124760408401846111de565b6112546040860182610a4b565b5061126260608401846111de565b61126f6060860182610a4b565b5061127d60808401846111de565b61128a6080860182610a4b565b5061129860a08401846111de565b6112a560a0860182610a4b565b508091505092915050565b6000606083016112c360008401846110f1565b6112d06000860182611108565b506112de602084018461111c565b84820360208601526112f082826111f5565b91505061130060408401846111de565b61130d6040860182610a4b565b508091505092915050565b6000602082019050818103600083015261133281846112b0565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113a382610945565b91506113ae83610945565b92508282039050818111156113c6576113c5611369565b5b92915050565b60006113d782610945565b91506113e283610945565b92508282026113f081610945565b9150828204841483151761140757611406611369565b5b509291505056fea2646970667358221220d922adb488834a0545ba3634eb410528a1c1d80682300de3fde8b06bb8179ea064736f6c63430008130033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80636180801014610067578063717681c6146100835780638d12c426146100b3578063cb956711146100e7578063e3ac7e1114610117578063f237640a14610147575b600080fd5b610081600480360381019061007c919061085e565b610163565b005b61009d6004803603810190610098919061097b565b6102d7565b6040516100aa9190610ad0565b60405180910390f35b6100cd60048036038101906100c8919061097b565b6103de565b6040516100de959493929190610b4b565b60405180910390f35b61010160048036038101906100fc9190610ba5565b6104b9565b60405161010e9190610ad0565b60405180910390f35b610131600480360381019061012c9190610ba5565b6104d1565b60405161013e9190610bd2565b60405180910390f35b610161600480360381019061015c9190610d1d565b6104f0565b005b600080866000013581526020019081526020016000206040518060a001604052808780602001906101949190610d88565b80600001906101a39190610db0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018780602001906101fb9190610d88565b6040013581526020018780602001906102149190610d88565b602001358152602001876040013581526020014281525090806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000019081610269919061101f565b5060208201518160010155604082015181600201556060820151816003015560808201518160040155505084600001357f32569c122e0d7a43079203df1373675696c8ccd8ca67de60dc2238b6bb226214866040516102c89190611318565b60405180910390a25050505050565b6102df61073c565b60008084815260200190815260200160002082815481106103035761030261133a565b5b90600052602060002090600502016040518060a001604052908160008201805461032c90610e42565b80601f016020809104026020016040519081016040528092919081815260200182805461035890610e42565b80156103a55780601f1061037a576101008083540402835291602001916103a5565b820191906000526020600020905b81548152906001019060200180831161038857829003601f168201915b50505050508152602001600182015481526020016002820154815260200160038201548152602001600482015481525050905092915050565b600060205281600052604060002081815481106103fa57600080fd5b90600052602060002090600502016000915091505080600001805461041e90610e42565b80601f016020809104026020016040519081016040528092919081815260200182805461044a90610e42565b80156104975780601f1061046c57610100808354040283529160200191610497565b820191906000526020600020905b81548152906001019060200180831161047a57829003601f168201915b5050505050908060010154908060020154908060030154908060040154905085565b6104c161073c565b6104ca826105b6565b9050919050565b6000806000838152602001908152602001600020805490509050919050565b60006103e86001426105029190611398565b61050c91906113cc565b90506000808481526020019081526020016000206040518060a00160405280848152602001600081526020018381526020018381526020014281525090806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000019081610586919061101f565b50602082015181600101556040820151816002015560608201518160030155608082015181600401555050505050565b6105be61073c565b6000806000848152602001908152602001600020805490500361061c576040518060a0016040528060405180602001604052806000815250815260200160008152602001600081526020016000815260200160008152509050610737565b6000808381526020019081526020016000206001600080858152602001908152602001600020805490506106509190611398565b815481106106615761066061133a565b5b90600052602060002090600502016040518060a001604052908160008201805461068a90610e42565b80601f01602080910402602001604051908101604052809291908181526020018280546106b690610e42565b80156107035780601f106106d857610100808354040283529160200191610703565b820191906000526020600020905b8154815290600101906020018083116106e657829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505090505b919050565b6040518060a0016040528060608152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b60006060828403121561079a5761079961077f565b5b81905092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126107c8576107c76107a3565b5b8235905067ffffffffffffffff8111156107e5576107e46107a8565b5b602083019150836040820283011115610801576108006107ad565b5b9250929050565b60008083601f84011261081e5761081d6107a3565b5b8235905067ffffffffffffffff81111561083b5761083a6107a8565b5b602083019150836060820283011115610857576108566107ad565b5b9250929050565b60008060008060006060868803121561087a57610879610775565b5b600086013567ffffffffffffffff8111156108985761089761077a565b5b6108a488828901610784565b955050602086013567ffffffffffffffff8111156108c5576108c461077a565b5b6108d1888289016107b2565b9450945050604086013567ffffffffffffffff8111156108f4576108f361077a565b5b61090088828901610808565b92509250509295509295909350565b6000819050919050565b6109228161090f565b811461092d57600080fd5b50565b60008135905061093f81610919565b92915050565b6000819050919050565b61095881610945565b811461096357600080fd5b50565b6000813590506109758161094f565b92915050565b6000806040838503121561099257610991610775565b5b60006109a085828601610930565b92505060206109b185828601610966565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109f55780820151818401526020810190506109da565b60008484015250505050565b6000601f19601f8301169050919050565b6000610a1d826109bb565b610a2781856109c6565b9350610a378185602086016109d7565b610a4081610a01565b840191505092915050565b610a5481610945565b82525050565b600060a0830160008301518482036000860152610a778282610a12565b9150506020830151610a8c6020860182610a4b565b506040830151610a9f6040860182610a4b565b506060830151610ab26060860182610a4b565b506080830151610ac56080860182610a4b565b508091505092915050565b60006020820190508181036000830152610aea8184610a5a565b905092915050565b600082825260208201905092915050565b6000610b0e826109bb565b610b188185610af2565b9350610b288185602086016109d7565b610b3181610a01565b840191505092915050565b610b4581610945565b82525050565b600060a0820190508181036000830152610b658188610b03565b9050610b746020830187610b3c565b610b816040830186610b3c565b610b8e6060830185610b3c565b610b9b6080830184610b3c565b9695505050505050565b600060208284031215610bbb57610bba610775565b5b6000610bc984828501610930565b91505092915050565b6000602082019050610be76000830184610b3c565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c2a82610a01565b810181811067ffffffffffffffff82111715610c4957610c48610bf2565b5b80604052505050565b6000610c5c61076b565b9050610c688282610c21565b919050565b600067ffffffffffffffff821115610c8857610c87610bf2565b5b610c9182610a01565b9050602081019050919050565b82818337600083830152505050565b6000610cc0610cbb84610c6d565b610c52565b905082815260208101848484011115610cdc57610cdb610bed565b5b610ce7848285610c9e565b509392505050565b600082601f830112610d0457610d036107a3565b5b8135610d14848260208601610cad565b91505092915050565b60008060408385031215610d3457610d33610775565b5b6000610d4285828601610930565b925050602083013567ffffffffffffffff811115610d6357610d6261077a565b5b610d6f85828601610cef565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008235600160c003833603038112610da457610da3610d79565b5b80830191505092915050565b60008083356001602003843603038112610dcd57610dcc610d79565b5b80840192508235915067ffffffffffffffff821115610def57610dee610d7e565b5b602083019250600182023603831315610e0b57610e0a610d83565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e5a57607f821691505b602082108103610e6d57610e6c610e13565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302610ed57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610e98565b610edf8683610e98565b95508019841693508086168417925050509392505050565b6000819050919050565b6000610f1c610f17610f1284610945565b610ef7565b610945565b9050919050565b6000819050919050565b610f3683610f01565b610f4a610f4282610f23565b848454610ea5565b825550505050565b600090565b610f5f610f52565b610f6a818484610f2d565b505050565b5b81811015610f8e57610f83600082610f57565b600181019050610f70565b5050565b601f821115610fd357610fa481610e73565b610fad84610e88565b81016020851015610fbc578190505b610fd0610fc885610e88565b830182610f6f565b50505b505050565b600082821c905092915050565b6000610ff660001984600802610fd8565b1980831691505092915050565b600061100f8383610fe5565b9150826002028217905092915050565b611028826109bb565b67ffffffffffffffff81111561104157611040610bf2565b5b61104b8254610e42565b611056828285610f92565b600060209050601f8311600181146110895760008415611077578287015190505b6110818582611003565b8655506110e9565b601f19841661109786610e73565b60005b828110156110bf5784890151825560018201915060208501945060208101905061109a565b868310156110dc57848901516110d8601f891682610fe5565b8355505b6001600288020188555050505b505050505050565b60006111006020840184610930565b905092915050565b6111118161090f565b82525050565b600080fd5b60008235600160c00383360303811261113857611137611117565b5b82810191505092915050565b600080fd5b600080fd5b6000808335600160200384360303811261116b5761116a611117565b5b83810192508235915060208301925067ffffffffffffffff82111561119357611192611144565b5b6001820236038313156111a9576111a8611149565b5b509250929050565b60006111bd83856109c6565b93506111ca838584610c9e565b6111d383610a01565b840190509392505050565b60006111ed6020840184610966565b905092915050565b600060c08301611208600084018461114e565b858303600087015261121b8382846111b1565b9250505061122c60208401846111de565b6112396020860182610a4b565b5061124760408401846111de565b6112546040860182610a4b565b5061126260608401846111de565b61126f6060860182610a4b565b5061127d60808401846111de565b61128a6080860182610a4b565b5061129860a08401846111de565b6112a560a0860182610a4b565b508091505092915050565b6000606083016112c360008401846110f1565b6112d06000860182611108565b506112de602084018461111c565b84820360208601526112f082826111f5565b91505061130060408401846111de565b61130d6040860182610a4b565b508091505092915050565b6000602082019050818103600083015261133281846112b0565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113a382610945565b91506113ae83610945565b92508282039050818111156113c6576113c5611369565b5b92915050565b60006113d782610945565b91506113e283610945565b92508282026113f081610945565b9150828204841483151761140757611406611369565b5b509291505056fea2646970667358221220d922adb488834a0545ba3634eb410528a1c1d80682300de3fde8b06bb8179ea064736f6c63430008130033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/contracts/interfaces/IDataBankPlayground.sol b/contracts/interfaces/IDataBankPlayground.sol new file mode 100644 index 0000000..b47a10a --- /dev/null +++ b/contracts/interfaces/IDataBankPlayground.sol @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +/** + * @title IDataBankPlayground + * @notice Interface for DataBankPlayground testing contract + * @dev This interface is for testing purposes only. Not for production use. + */ +interface IDataBankPlayground { + struct AggregateData { + bytes value; + uint256 power; + uint256 aggregateTimestamp; + uint256 attestationTimestamp; + uint256 relayTimestamp; + } + + /** + * @dev updates oracle data with new value for playground testing + * @param _queryId the query ID to update the oracle data for + * @param _value the value to update the oracle data with + */ + function updateOracleDataPlayground(bytes32 _queryId, bytes memory _value) external; + + /** + * @dev returns the current aggregate data for a given query ID + * @param _queryId the query ID to get the current aggregate data for + * @return _aggregateData the current aggregate data + */ + function getCurrentAggregateData(bytes32 _queryId) external view returns (AggregateData memory _aggregateData); + + /** + * @dev returns the aggregate data for a given query ID and index + * @param _queryId the query ID to get the aggregate data for + * @param _index the index of the aggregate data to get + * @return _aggregateData the aggregate data + */ + function getAggregateByIndex(bytes32 _queryId, uint256 _index) external view returns (AggregateData memory _aggregateData); + + /** + * @dev returns the total number of aggregate values + * @param _queryId the query ID to get the aggregate value count for + * @return number of aggregate values stored + */ + function getAggregateValueCount(bytes32 _queryId) external view returns (uint256); +} + diff --git a/contracts/testing/DataBankPlayground.sol b/contracts/testing/DataBankPlayground.sol new file mode 100644 index 0000000..e382d52 --- /dev/null +++ b/contracts/testing/DataBankPlayground.sol @@ -0,0 +1,110 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import "../interfaces/ITellorDataBridge.sol"; + +/** + * @author Tellor Inc. + * @title DataBankPlayground + * @notice Testing contract for rapid prototyping with Tellor oracle data + * @dev This contract is used to store data for multiple data feeds. It has no data bridge validation, + * and is used for testing simple tellor integrations. This contract skips data verification and is + * NOT for production use. For production contracts, use TellorDataBridge verification. + * See SampleLayerUser repo for usage examples: https://github.com/tellor-io/SampleLayerUser + */ +contract DataBankPlayground { + // Storage + mapping(bytes32 => AggregateData[]) public data; // queryId -> aggregate data array + + struct AggregateData { + bytes value; // the value of the asset + uint256 power; // the aggregate power of the reporters + uint256 aggregateTimestamp; // the timestamp of the aggregate + uint256 attestationTimestamp; // the timestamp of the attestation + uint256 relayTimestamp; // the timestamp of the relay + } + + // Events + event OracleUpdated(bytes32 indexed queryId, OracleAttestationData attestData); + + // Functions + /** + * @dev updates oracle data with new attestation data after verification + * @param _attestData the oracle attestation data to be stored + * note: _currentValidatorSet array of current validators (unused for testing) + * note: _sigs array of validator signatures (unused for testing) + */ + function updateOracleData( + OracleAttestationData calldata _attestData, + Validator[] calldata /* _currentValidatorSet */, + Signature[] calldata /* _sigs */ + ) public { + // Skips verification for testing purposes + // dataBridge.verifyOracleData(_attestData, _currentValidatorSet, _sigs); + + data[_attestData.queryId].push(AggregateData( + _attestData.report.value, + _attestData.report.aggregatePower, + _attestData.report.timestamp, + _attestData.attestationTimestamp, + block.timestamp + )); + emit OracleUpdated(_attestData.queryId, _attestData); + } + + /** + * @dev updates oracle data with new attestation data for playground + * without needing to format data structs + * @param _queryId the query ID to update the oracle data for + * @param _value the value to update the oracle data with + */ + function updateOracleDataPlayground(bytes32 _queryId, bytes memory _value) external { + // aggregate timestamp from tellor is in milliseconds + uint256 _aggregateTimestamp = (block.timestamp - 1) * 1000; + data[_queryId].push(AggregateData(_value, 0, _aggregateTimestamp, _aggregateTimestamp, block.timestamp)); + } + + // Getter functions + /** + * @dev returns the aggregate data for a given query ID and index + * @param _queryId the query ID to get the aggregate data for + * @param _index the index of the aggregate data to get + * @return _aggregateData the aggregate data + */ + function getAggregateByIndex(bytes32 _queryId, uint256 _index) external view returns (AggregateData memory _aggregateData) { + return data[_queryId][_index]; + } + + /** + * @dev returns the total number of aggregate values + * @param _queryId the query ID to get the aggregate value count for + * @return number of aggregate values stored + */ + function getAggregateValueCount(bytes32 _queryId) external view returns (uint256) { + return data[_queryId].length; + } + + /** + * @dev returns the current aggregate data for a given query ID + * @param _queryId the query ID to get the current aggregate data for + * @return _aggregateData the current aggregate data + */ + function getCurrentAggregateData(bytes32 _queryId) external view returns (AggregateData memory _aggregateData) { + return _getCurrentAggregateData(_queryId); + } + + // Internal functions + /** + * @dev internal function to get the current aggregate data for a query ID + * @param _queryId the query ID to get the current aggregate data for + * @return _aggregateData the current aggregate data + */ + function _getCurrentAggregateData(bytes32 _queryId) internal view returns (AggregateData memory _aggregateData) { + if (data[_queryId].length == 0) { + return (AggregateData(bytes(""), 0, 0, 0, 0)); + } + _aggregateData = data[_queryId][data[_queryId].length - 1]; + return _aggregateData; + } +} + diff --git a/package-lock.json b/package-lock.json index 1b61ba9..138defa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "usingtellorlayer", - "version": "1.0.3", + "version": "1.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "usingtellorlayer", - "version": "1.0.3", + "version": "1.1.0", "license": "ISC", "devDependencies": { "@nomicfoundation/hardhat-toolbox": "^5.0.0", diff --git a/test/DataBankPlayground.js b/test/DataBankPlayground.js new file mode 100644 index 0000000..37a9413 --- /dev/null +++ b/test/DataBankPlayground.js @@ -0,0 +1,58 @@ +var assert = require('assert'); +const h = require("../src/helpers/evmHelpers.js") +const abiCoder = new ethers.AbiCoder(); + +// encode query data and query id for eth/usd price feed +const ETH_USD_QUERY_DATA_ARGS = abiCoder.encode(["string","string"], ["eth","usd"]) +const ETH_USD_QUERY_DATA = abiCoder.encode(["string", "bytes"], ["SpotPrice", ETH_USD_QUERY_DATA_ARGS]) +const ETH_USD_QUERY_ID = h.hash(ETH_USD_QUERY_DATA) + +// define tellor chain parameters +const TELLOR_CHAIN_ID = "tellor-1" + +describe("DataBankPlayground - Function Tests", function () { + // init the assets which will be used in the tests + let accounts, databank, validatorSet; + + beforeEach(async function () { + // init accounts + accounts = await ethers.getSigners(); + // init tellor validator set + validatorSet = await h.createTellorValset({tellorChainId: TELLOR_CHAIN_ID}) + // deploy databank + databank = await ethers.deployContract("DataBankPlayground"); + }) + + it("updateOracleData, getCurrentData, getValueCount", async function () { + // "value" is the reported oracle data, in this case the ETH/USD price + price = "3000"; + priceWithDecimals = h.toWei(price); + let _value = abiCoder.encode(["uint256"], [priceWithDecimals]) + const { attestData, currentValidatorSet, sigs } = await h.prepareOracleData(ETH_USD_QUERY_ID, _value, validatorSet) + let _b = await h.getBlock() // get block before update + await databank.updateOracleData(attestData, currentValidatorSet, sigs); + let _dataRetrieved = await databank.getCurrentAggregateData(ETH_USD_QUERY_ID); + assert.equal(_dataRetrieved.value, _value, "value should be correct"); + // report timestamp is defined in prepareOracleData as: (block.timestamp - 2) * 1000 + assert.equal(_dataRetrieved.aggregateTimestamp, (_b.timestamp - 2) * 1000, "timestamp should be correct") + assert.equal(await databank.getAggregateValueCount(ETH_USD_QUERY_ID), 1, "value count should be correct") + }); + + it("updateOracleDataPlayground, getCurrentData, getValueCount", async function () { + // price as $3000 + price = "3000"; + // SpotPrice reported with 18 decimals + priceWithDecimals = h.toWei(price); + // encode the price as bytes + let _value = abiCoder.encode(["uint256"], [priceWithDecimals]) + // update the oracle data using the playground function + await databank.updateOracleDataPlayground(ETH_USD_QUERY_ID, _value); + // get the current aggregate data + let _dataRetrieved = await databank.getCurrentAggregateData(ETH_USD_QUERY_ID); + // assert the value is correct + assert.equal(_dataRetrieved.value, _value, "value should be correct"); + // assert the value count is correct + assert.equal(await databank.getAggregateValueCount(ETH_USD_QUERY_ID), 1, "value count should be correct") + }); +}); +